実現したいこと
現在業務にてgitlabでCIパイプラインを作成しております。
ローカルのGitブランチにてC言語のコードを開発し、それをリモートブランチへプッシュしたときにCIパイプラインを動作させようと考えております。
上司からの要望として、CIパイプラインでは作成したCコードのビルドを行い、ビルドが成功した場合のみリモートで反映を行い、失敗した場合は反映を行わせたくない、と言われております。
(ローカルでのコミットは、行っても行わなくてもよいとのことのです)
上記のようなことは、実現可能なのでしょうか?
発生している問題・分からないこと
そもそも実現が可能なのかわからない。
可能な場合、実現方法がわからない。
該当のソースコード
特になし
試したこと・調べたこと
上記の詳細・結果
ChatGPTにて上記の質問を行ったところ、以下のymlファイルが出力されました。
yml
1stages:2 - test 3 - deploy 4 5test:6 stage: test 7 script:8 - echo "Running tests..." 9 # テストコマンドをここに記述10 only:11 - branches # すべてのブランチで実行12 except:13 - master # masterブランチでは実行しない14 15deploy:16 stage: deploy 17 script:18 - echo "Deploying..." 19 # デプロイコマンドをここに記述20 only:21 - master # masterブランチでのみ実行22 when: on_success # testジョブが成功した場合にのみ実行
このymlファイルによるCIをわざと失敗させるために、適当なブランチ(test-branchとした)を作成し、ymlのtestステージのscriptに以下の1行を追加しました。
yml
1 script:2 - .exe.main
このとき、ディレクトリ内にexe.mainはおいていないので、testジョブは失敗し以下のメッセージが出力されました。
"The term '.main.exe' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again."
ジョブが失敗したので、ymlの変更分は本来は反映させたくないのですが、testブランチにはこのymlが反映されております。
補足
特になし
0 コメント