web-dev-qa-db-ja.com

特定のブランチとタグに対してのみGitlab CIを実行する方法は?

project_dev CIを3つのブランチとdev_1.0、dev_1.1、dev_1.2のような特定の種類のタグに対してのみ設定したいと思います。

どうすればそれを達成できますか?

これは私が今持っているものです:

 project_dev:
ステージ:dev 
スクリプト:
-エクスポート
-バンドルexecポッドリポアップデート
-バンドルexecポッドインストール
-バンドルexec fastlane crashlytics_project_dev 
 after_script:
-rm -rf〜/ Library/Developer/Xcode/Archives || true 
いつ:手動
のみ:
-開発
-リリース
-マスター
-//ここに追加する必要があります特定のタグに対してのみそのステージをさらに起動する条件。ここで正規表現を設定するにはどうすればよいですか?
タグ:
-iOS 

次のように入力すると:

のみ:
-ブランチ
-/^dev_[0-9.]*$/

dev1.2のようなタグのCIも実行しますが、実行しないでください。どうして?タグの正規表現はありますか?

正規表現の質問のように聞こえます。 gitlab.comで 正規表現project を作成しました。

ファイル: 。gitlab-ci.yml

project_dev:
  # Irrelevant keys is skipped
  script:
    - echo "Hello World"
  only:
    - develop
    - release
    - master
    - /^dev_[0-9]+(?:.[0-9]+)+$/ # regular expression

私はプッシュされました すべてのタグ この正規表現をテストするためにあなたが言及しました。

Tags

ご覧のとおり、dev_1.0dev_1.1のようなタグに一致しますが、ジョブproject_devはタグdev1.2によってトリガーされません。結果は次のように確認できます- パイプライン ページ

Pipelines

15
Gasol

Gitlab.com? exceptonlyの組み合わせを試すことができます。何かのようなもの

only: 
- tags 
- branches 
except:
- /^(?!(branch1|branch2|branch3|dev_[0-9.]*$)$).*$/

アイデアは、ブランチとタグのみがジョブをトリガーできるようにすることです。ただし、branch [1-3]およびdev_branchs/tagsとは異なるすべてのものを除きます。

6
Hiruma