GitLabRunner環境設定 https://qiita.com/Fune_TA/private/8a9049e11152a5b3f8a5)
上記の方法でRunnerでイメージを登録した後、ymlファイルをプロジェクトに追加することでパイプライン処理の設定を行うことができます。
実際のファイルでの処理を簡易にまとめます。
.gitlab-ci.yml
stages:
- make-artifact
make-artifact_job:
type: make-artifact
image: $CI_REGISTRY/<group_ID>/<subgroup_ID>/<project_name>:<tag>
script:
- source /opt/dey/3.0-r4/ccimx6qpsbc/environment-setup-cortexa9t2hf-neon-dey-linux-gnueabi
- make clean
- echo ${CI_COMMIT_REF_NAME} >> ver_integ.txt
- make archive
artifacts:
name: "${CI_COMMIT_REF_NAME}"
expire_in: 1 week
paths:
- radarupdate.tgz
- radarupdate_all.tgz
- install.sh
source-code:
type: make-artifact
image: $CI_REGISTRY/<group_ID>/<subgroup_ID>/<project_name>:<tag>
script:
- ./release.sh "${CI_COMMIT_REF_NAME}"
only:
- tags
artifacts:
name: "${CI_COMMIT_REF_NAME}"
expire_in: 1 week
paths:
- integ_${CI_COMMIT_REF_NAME}.tar.bz2
stages:
処理の段階を決めることができます。
順番に処理をしたい場合は
stages:
- A
- B
- C
のように設定して順番ごとにjobに割りふることで三段階(A→B→Cの順)で処理を行うことができます。
今回はすべて並列で処理を行ったため、一つになっています。
job:
処理の大きな枠組みとなります。
今回では
make-artifact_job
source-code
の二つでビルド成果物の作成とソースコードの取得という二つの枠組みで分けています。
type:
stagesで定義した段階をここで設定します。
image:
jobの実行で使用するimageを指定します。ここでは前回の登録時に設定したもの使用しています。
script:
jobで実行する処理をここに記載します。
今回はmake-artifact_jobでプロジェクト内でビルド処理を
source-codeではプロジェクト内のファイルをまとめるスクリプトを起動しています。
only:
jobが実行される条件を記載します。今回ソースコードは毎回必要ではなかったため、タグをつけた際のみsource-codeが処理されるようにしています。
artifacts:
成果物の詳細を記載します。
- name:
成果物の名前を記載します。今回はcommitIDを参照して名前をつけるようにしています。 - expire_in:
成果物をダウンロードできる期限を記載します。今回は一週間にしています。
期限を過ぎた場合は再実行が必要になります。
WARNING: Uploading artifacts as "archive" to coordinator... failed id=1682384872 responseStatus=524 Origin Time-out status=524 token=Wux8XQsD
WARNING: Retrying... context=artifacts-uploader error=invalid argument
- paths:
成果物として送信するアイテムのパスを指定します。
成果物のダウンロード
Gitlabのプロジェクトを開き、左のバーからCI/CD>Pipelinesを開きます。
パイプライン処理の一覧が表示されます。成果物のダウンロードしたいcommitIDのStagesをクリックします。
Job一覧が表示されるのでダウンロードしたい成果物を選びます。
処理のログと詳細が表示されます。詳細のDownloadから成果物をダウンロードできます。
Stagesを選択した後は同様の操作でダウンロードが行えます。
参考
GitLab CI/CD パイプライン設定リファレンス https://gitlab-docs.creationline.com/ee/ci/yaml/