LoginSignup
3
2

More than 1 year has passed since last update.

【GitLab】CICDのymlファイルの書き方①

Posted at

はじめ

  gitlabのCICDを勉強しています。
  .gitlab-ci.ymlの書き方と注意点をメモしました。
  例を参考しながら、job、script、stages、variables、before_script、after_scriptの書き方をまとめてみました。

例文

before_script:
  - echo "before-script!!"

variables:
  DOMAIN: example.com

stages:
  - build
  - test
  - deploy

build:
  before_script:
    - echo "before-script in job"
  stage: build
  script:
    - echo "mun clean"
    - echo "mvn install"
    - echo "$DOMAIN"
  after_script:
    - echo "after-script in job"

unittest1:
  stage: test
  script:
    - echo "run test"

deploy:
  stage: deploy
  script:
    - echo "hello deploy"
    - sleep 2;

unittest2:
  stage: test
  script:
    - echo "run test"

after_script:
  - echo "after-script!!"

書き方と注意

  • .gitlab-ci.ymlを書いた後は、「CI Lint」で構文の文法を確認する。
  • 一つymlファイルに一つ以上のjobを設定できる。jobの名前は唯一で、予約語(scriptなど)を使えない。よく見られるjobの名前:build、unittest、deploy、codescanなど。
  • 一つjobには、一つ以上scriptを設定する。
  • scriptには1つ以上のshellコマンドを記入する。
  • stageはjobのstage名を命名する。
  • stagesはjobのstageの順番を設定することによって、jobの実行順番を決める。
  • before_scriptは毎回jobを実行する前に実行する操作(コマンド)を設定する。リスト型で書く。before_scriptが失敗したら、scriptの実行に影響を与える。ymlファイルのbefore_scriptを代わりに実行する。
  • after_scriptは毎回jobを実行した後で実行する操作(コマンド)を設定する。リスト型で書く。after_scriptが失敗したら、結果に影響を与えない。ymlファイルのafter_scriptを代わりに実行する。
  • ymlファイルに対して、before_scriptとafter_scriptを設定することもできる。before_scriptとafter_scriptを設定しないjobが実行された時に、ymlファイルに設定されたbefore_scriptとafter_scriptが実行される。
  • 同じstageの名前をもつふたつjobは並列実行する。
  • 「.pre」をstageの名前に設定する場合は、該当のjobは一番最初実行する。
  • 「.post」をstageの名前に設定する場合は、該当のjobは一番最後実行する。
  • Piplineに「.pre」jobあるいは「.post」jobしか存在しない場合は、Piplineは生成されない。
  • variablesにパラメーター(DOMAIN)を定義する。
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2