タグ付きのマスターブランチでのみ.gitlab-ci.ymlジョブを実行するにはどうすればよいですか?
job:
script:
- echo "Do something"
only:
- master
- tags
上記のコードは、マスターブランチまたはタグ付きコミットのいずれかの条件が存在する場合に実行されます。
私の目標は、実稼働展開用にこの実行を行うことですが、Masterブランチ上にあり、(バージョンで)タグ付けされている必要があります。そうでなければ、タグがない場合にステージングにプッシュする別のジョブがあります。
この動作は、バージョン 12 で導入されます。
未解決の問題 は最近更新されました:
Jason Lenny @jlennyは、タイトルを{-Update .gitlab-ci.ymlからビルド条件の連結ロジックをサポートする}からビルド条件の連結ロジックに変更しましたMVC・2日前
Jason Lenny @jlennyがマイルストーンを12.0・2日前に変更しました
(成功を祈っている)
解決策は、except
キーワードを使用してすべてのブランチを除外し、only
をタグで実行すると、マスターブランチのタグでのみパイプラインを実行することです。
only:
- tags
except:
- branches
バージョン11.3.4
を使用しています
私はそれを機能させました、これは私の作業コードスニペットです、他のすべては私のために働いていませんでした
only:
- tags # please mention the 's' compared to Sergio Tomasello's solution
except:
- branches
11.4.3を使用します
この動作はgitlab-ciではまだサポートされていませんが、追加する 未解決の問題 があります。
その間、私はまた、逸話的な報告を聞いたことがあります
only:
- master
only:
- tags
仕事をやり遂げます(また、そうでないという逸話的なレポートも)。
Matt Aliotoのような他の人に感謝します 未解決の問題 (これはProduct Vision 2019
とラベル付けされているので、うまくいけばノックします)今年中に)。
Carlson Coleの質問に固有の、これは機能します:
job_for_master_no_tags:
stage: deploy
script:
- echo "Release to Staging"
only:
- master
job_for_master_tags_only:
stage: deploy
script:
- echo "Release to Production"
only:
- tags
except:
- /^(?!master).+@/ # Ruby RegEx for anything not starting with 'master'
- /^(?!master).+/
(@
なし)を使用しようとしても機能しません-難しい方法を学びました????