特定のランナーでパイプラインを実行することは可能ですか? (タグを使用しない)
environments
、あるいはgitlab runner exec
を使用することは可能ですか?
シナリオ:
複数のランナーが既にアタッチされている既存のプロジェクト(ランナーの登録に使用される特定のプロジェクトトークン)があり、独自のタグが関連付けられている(したがって、これらも変更できません)。
新しいランナーを追加していますが、最初にテストして機能することを確認する必要がありますが、タグやランナーの特定のプロジェクトを変更せずに、パイプラインをこのマシンでビルドするように強制する必要があります。
現在、GitLabで特定のランナーを構築するためのソリューションはありませんが、 Sticky Runners に未解決の問題があります。これは、マイルストーンによると、今後3〜6か月で解決されることを願っています。
特定のランナーでプロジェクトを構築するためにこれまでに行った回避策は、次の行に沿って、かなりハックな方法で GitLab Runner API を使用することです。
テストのために新しいランナーを分離するための2つのメカニズムがあります。
タグとプライベートランナーアタッチメントを使用します(すでに呼び出されています)。
これをさらに拡張するには...タグなどを変更できない過酷な設定でも、いつでもプロジェクトをフォークできます。
新しいプライベートフォークで、[設定] >> [CI/CD]に移動し、[一般的なパイプライン設定]の下のカスタムCI構成パスで.gitlab-ci.ymlファイルを上書きできます。これにより、git cp .gitlab-ci.yml .mycustomgitlab-ci.yml
そして単にgit add
/git commit
/git Push
そしてあなたはビジネスをしています。
意見:問題のあるランナーのタグを調整し、新しいフォークされたプロジェクトを分離するためのメカニズムを使用できない場合、これは技術的な問題ではなく、政治的な問題です。
Gitlab-runnerexec..。
Shellgitlabランナーを使用していると仮定します...
/tmp/myrepo
/path/to/gitlab-runner exec Shell {.gitlab-ci.yml target}
https://docs.gitlab.com/runner/commands/#gitlab-runner-exec およびそれに関するブログ https://substrakt.com/how-to-)を参照してください。 debug-gitlab-ci-builds-locally /
単一ビルドのgitlab-runnerをカナリアします。
Gitlab-runnerプロセスを起動して、N回のビルドを実行してから、オフラインに戻すことができます。参照: https://docs.gitlab.com/runner/commands/#gitlab-runner-run-single
...これは影響がゼロではありませんが、問題の爆風半径を確実に制限します。
タグを使用したくない場合は、別のオプションとして、ランナーを特定のプロジェクトに割り当てることができます。このオプションまたは代替タグは、Gitlabの設計方法です。