GitLab CI/CDにおけるジョブは「.gitlab-ci.yml」に定義する
.gitlab-ci.yml
job01:
script:
- uname -r
- ps
- hostname
Job02:
script:
- ./build.sh
- ./test.sh
– Scriptパラメータ利用例
job01:
script:
- uname -a
- ./scripts/build.sh
- bundle exec rspec spec/requests/
– only, expectパラメータ
job01:
only:
- /^script-.*$/
except:
- tags
only, exceptで使用できるオプション
branches, tags, pushes, schedules, web
– variablesパラメータ
job01:
variables:
PROXY_PATH: 'http://proxy.example.com'
FLAGS: '-0'
script:
- 'https_proxy=$PROXY_PATH curl $FLAGS https://gitlab.com/gitlab-org/gitlab-ce/repository/archive.tar.gz'
– tagパラメータ
プロジェクト内で実行可能なRunnerのリストから特定のRunnerを選択する際に使用
指定したタグを利用し、それにマッチしたRunnerだけにジョブを渡す
job01:
tags:
- shell
- gitlab-runner01
– artifactsパラメータ
ジョブの実行結果をアーティファクトとして保存する際の定義を行う
name, untracked, when, expire_in
job01:
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
untracked: true
expire_in: 10 min
paths:
- ./artifacts
### pythonを実行するサンプル
job01:
script:
- python ./scripts/hello.py
only:
- master
tags:
- shell
- gitlab-runner01
.gitlab-ci.ymlでbuildとテストを自動化するところまではわかった。
.gitlab-ci.ymlでDockerのbuildをどうやるかが問題か…