2016-10-11 11 views
5

.gitlab-ci.ymlにはビルド、テスト、デプロイの3つのステージがあります。Gitlabは条件付きでステージを実行します

夜間のリグレッションテスト段階を実行する必要があります - だけでなく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実行testステージに毎日のタグ付けは好ましくない。

他のアイデアはありますか?

答えて

0

これを探している人がいれば、gitlabは変数の上書きを伴う予定ビルド機能を実装しました(非常に便利です)。ドキュメントはhereです。この答えが与えられましたこの機能の説明に興味がある人のために

、ここではそれが行く:

をパイプラインのスケジュールに

を使用してパイプラインをスケジュールするためには:

  1. 移動プロジェクトのパイプライン - >スケジュールに移動し、新しいスケジュールボタンをクリックします。
  2. フォームに記入してください。
  3. ヒットパイプラインスケジュールを保存して変更を有効にしてください。

私のお気に入りの機能は、スケジュールされたパイプライン変数です。

変数のドキュメントがhereを見つけることができますが、私にとって最も有用な情報は、私がここに再入力します優先順位であった:変数の

優先

変数を上書きすることができ、それらが取りますこの順序で互いにより優先:

  1. トリガー変数またはスケジュールパイプライン変数(すべてに優先します)
  2. プロジェクトレベルの秘密の変数または保護された秘密の変数
  3. グループレベルの秘密の変数または保護された秘密の変数
  4. YAMLに定義されたジョブレベル変数
  5. YAMLに定義されたグローバル変数
  6. 展開変数
  7. 事前定義されました変数(チェーン内で一番小さい)

希望します。彼らがこの機能を追加したことを大変光栄に思っています。

+0

実際に何かを答えに入れることができるのであれば、参考のために便利なはずです。 – deepdive

+0

私はそれについて考えましたが、次の月に指示が変わることを心配していました。私は戻って、現在のメソッドの指示を追加し、彼らがそれを変更しないことを願って:) – trueCamelType

+0

あなたがこれを助けてくれたら投票してください:) – trueCamelType

-1

私は単なる一例に従うことによって、この「機能」を実装し、あなた毎晩テストを実行するトリガーをオフに設定する(なぜ?ので、私は、Linuxの使用)here 使用のcrontabとカールを発見しました。

30 0 * * * curl --request POST --form token=TOKEN --form ref=master https://gitlab.example.com/api/v3/projects/9/trigger/builds 
8

現在、環境変数に応じてジョブを実行する方法はありません(機能リクエストはいつでも開くことができます)。ただし、単純な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 

変数は、それが実行されません従うテストを存在しない場合。さもなければ、彼らはします。

希望に役立ちます!

関連する問題