3つの段階があります-.gitlab-ci.yml
。
毎晩の回帰テストステージを実行する必要があります-nightly
:)
関連する.gitlab-ci.yml
コード:
stages:
- build
- test
- deploy
build_project:
stage: build
script:
- cd ./some-dir
- build-script.sh
except:
- tags
#Run this only when say variable 'NIGHTLY_TEST == True'. But HOW?
nightly_regression_test_project:
stage: test
script:
- cd ./some-dir
- execute test-script
only
run test
ステージに毎日タグ付けすることは好ましくありません。
他のアイデアは?
誰かがこれを探している場合に備えて、gitlabは変数の上書きを使用したスケジュールビルド機能を実装しました(信じられないほど便利です)。ドキュメントが見つかりました こちら 。
この答えが与えられたときにこの機能の指示に興味がある人のために、ここにあります:
パイプラインスケジュールの使用
パイプラインをスケジュールするには:
これの私のお気に入りの機能は、スケジュールされたパイプライン変数です。
変数のドキュメントは here にありますが、私にとって最も有用な情報は優先度であり、ここで再入力します。
変数の優先度
変数は上書きでき、次の順序で互いに優先します。
お役に立てれば。この機能が追加されたことを嬉しく思います。
except
およびonly
は、それらをトリガーする変数を指定できます。
.gitlab-ci.ymlで次を使用できます。
build1:
stage: build
script:
- echo "Only when NIGHTLY_TEST is false"
except:
variables:
- $NIGHTLY_TEST
test1:
stage: test
script:
- echo "Only when NIGHTLY_TEST is true"
only:
variables:
- $NIGHTLY_TEST
現在、環境変数に応じてジョブを実行する方法はありません(いつでも機能要求を開くことができます!)。ただし、環境変数が存在しない場合は、単純なBashコマンドを使用してすぐに終了できます。
何かのようなもの:
stages:
- build
- test
- deploy
build_project:
stage: build
script:
- cd ./some-dir
- build-script.sh
except:
- tags
# Run this only when NIGHTLY_TEST environment variable exists.
nightly_regression_test_project:
stage: test
script:
- [ -z "$NIGHTLY_TEST" ] && exit 1;
- cd ./some-dir
- execute test-script
変数が存在しない場合、それに続くテストは実行されません。そうでなければ、彼らはそうします。
お役に立てば幸いです!