GitLab CI/CD - ハンズオンラボ: アーティファクトの使用
所要時間の目安: 20〜25分
目標
GitLab のアーティファクトとは、ジョブ内で生成され、後のステージの他のジョブに渡されるファイルです。同じステージ内の他のジョブにアーティファクトを渡すことはできません。パイプラインで生成されたアーティファクトには、後からアクセスしてダウンロードすることができます。詳細については、こちらをクリックしてください。
このラボでは、.gitlab-ci.yml ファイルでアーティファクトを作成する方法を学びます。アーティファクトを作成した後、GitLab の UI でアーティファクトを確認します。
タスク A: main.go ファイルの追加
前のラボで作成した CICD Demo プロジェクトを開いてください。
Code > Repository に移動し、+ > This directory > New file をクリックして新しいファイルを追加してください。
Filename フィールドに
main.goと入力してください。以下のコードをファイルに貼り付けてください。
package main import ( "fmt" "net/http" ) func helloworld() string { return "Hello World!!" } func healthcheck() string { return "Health OK!" } func livenesscheck() string { return "I am alive!!!" } func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, helloworld()) }) http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, healthcheck()) }) http.HandleFunc("/liveness", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, livenesscheck()) }) http.ListenAndServe(":8080", nil) }Commit message フィールドに
Add main.go fileと入力し、Target Branch がmainに設定されていることを確認して、Commit changes をクリックしてください。
タスク B: パイプラインにアーティファクトを追加する
左のサイドバーで Code > Repository をクリックしてください。
.gitlab-ci.ymlファイルを選択して内容を確認してください。Edit > Edit single file をクリックし、ファイルの末尾に以下のスニペットを貼り付けてください。build app: image: golang:latest stage: build script: - go build -o app main.go artifacts: paths: - app expire_in: 1 hourCommit message フィールドに
Add CI artifactsと入力し、Target Branch がmainに設定されていることを確認して、Commit changes をクリックしてください。左側のナビゲーションペインで Build > Pipelines をクリックし、最新のパイプライン実行のステータスアイコンをクリックしてください。
build appジョブが完了したら、クリックしてジョブの出力ログを確認してください。ジョブが
go.modが見つからないというメッセージで失敗した場合は、成功するまでジョブを再試行してください。これは断続的に発生する Go ビルドのバグです。ページ右側の Job artifacts パネルで Browse をクリックし、build app パイプラインジョブによって作成された
appアーティファクトがダウンロード可能であることを確認してください。
ラボガイドの完了
このラボ演習が完了しました。このコースの他のラボガイドも参照できます。
ご意見・ご提案?
GitLab CI/CD のハンズオンガイド に変更を加えたい場合は、マージリクエストで変更内容を提出してください!
