私はドキュメンテーション、いくつかの記事を読みましたが、あなたは私を愚かだと呼ぶかもしれませんが、このような概念を扱うのはこれが初めてです。
ただし、これらのタグに依存してジョブをどの程度正確に実行していますか?これらのすべての操作が必要ですか?新しいコードをリポジトリにプッシュすると、テストした限り* .ymlファイルが実行されます。
つまり、コミットでバージョンを定義するときにのみビルドを実行したい場合はどうなりますか?
IDK ...
git commit --tags "v. 2.0" -m "this is version 2.0" (probably not right)
しかし、もちろんそれは普遍的でなければならないので、ランナーをトリガーするためにどのタグを使用するかを常に伝える必要はありませんが、たとえば、数値を認識させます。
ご覧のとおり、私はかなり混乱しています...タグがどのように正確に機能するかを詳しく説明できれば、概念を理解できるようになり、本当に感謝しています
GitLab CIのタグとGitのタグは2つの異なる概念です。
.gitlab-ci.yml
を記述するとき、タグtesting
を使用していくつかのジョブを指定できます。このタグが関連付けられているランナーが利用可能な場合、ランナーはジョブをピックアップします。
Gitでは、リポジトリ内でタグを使用して特定のコミットをマークします。多くの場合、バージョンをtagするために使用されます。
Gitでタグを使用してGitLab CIでパイプラインを開始すると、2つの概念が混同される可能性があります。 .gitlab-ci.yml
では、only
でセクションtags
を指定できます。
タグのGitLabドキュメント および のみ を参照してください。
例は、gitでタグをプッシュする場合です。
$ git tag -a 1.0.0 -m "1.0.0"
$ git Push Origin 1.0.0
そして、.gitlab-ci.yml
のジョブは次のようになります。
compile:
stage: build
only: [tags]
script:
- echo Working...
tags: [testing]
testing
タグを持つランナーの使用を開始します。
私の理解では、ステップに欠けているのは、ランナーにタグtesting
を指定することです。これを行うには、GitLabでプロジェクトに移動します。 Wikiの横にあるSettingsをクリックします。 CI/CD Pipelinesに移動すると、ランナーがいます。 Guidの横にあるペンアイコンをクリックします。次のページでタグを変更できます。
これらの操作はすべて必要ですか?
いいえ、1人のランナーしかいない場合、または多くのランナーがジョブを実行していることを気にしない場合は、ランナー/ジョブにタグ付けしても意味がありません。
それでは、コミットでバージョンを定義するときにのみビルドを実行したい場合はどうでしょうか?
job:
only:
- tags