web-dev-qa-db-ja.com

Gitlab CIで手動ステージを確立するにはどうすればよいですか?

バージョン8.9のGitlab CIでの手動ステージングのドキュメントが見つからないようです。 「Deploy to Test」などの手動ステージを実行するにはどうすればよいですか?

Gitlab CIが成功したRPMをdevにデプロイし、それを確認したら、Push to Testを実行し、そこからリリースを生成します。これは現在Gitlab CIで可能ですか?

13
Routhinator

更新:GitLab 8.10で手動アクションが導入されました。マニュアルから「手動アクションは、自動的に実行されない特別なタイプのジョブです。ユーザーが明示的に開始する必要があります。手動アクションは、パイプライン、ビルド、環境、およびデプロイメントビューから開始できます。同じマニュアルを実行できます。複数回アクション。」手動アクションの使用例には、本番環境へのデプロイメントがあります。この回答の残りの部分は、Gitlab 8.9以前にのみ適用されます。

歴史的回答:

手動のデプロイ/リリースが8.9のGitlabで利用可能だったようには見えません。

1つの可能性は、リリースをトリガーする保護されたブランチを持つことです。ここで保護されたブランチに関する情報を参照してください: http://doc.gitlab.com/ce/workflow/protected_branches.html

基本的に保護されたブランチでは、自分だけがコードをマージできるブランチ(testdeploybranch)を作成できます。 devへのコミットがGitlab CIテストとデプロイジョブに合格し、手動によるレビューに合格すると、そのコミットを保護されたブランチにマージしてリリースをトリガーできます。このブランチでは、.gitlab-ci.ymlジョブ定義のonlyオプションを使用して、Gitlab CIで特別なリリースジョブをセットアップできます。詳細はこちら: http://doc.gitlab.com/ci/yaml/README.html

だからこのようなもの:

release:
  only: testdeploybranch
  type: release
  script: some command or script invocation to deploy to Test

これはあなたが望んでいることではないかもしれませんが、Gitlabから手動でリリースすることができます。異なるサーバーに対して手動で同じリリース手順を手動で行う簡単な方法はありません。おそらく、他の誰かがこの戦略を拡張できるかもしれません。

7
Snorre

ジョブでwhen: manualを使用して、タスクを手動に設定できます( documentation )。

したがって、たとえば、すべてのプッシュでデプロイマンを実行したいが、インフラストラクチャを手動で破棄するオプションを提供したい場合は、次のようにします。

stages:
  - deploy
  - destroy

deploy:
  stage: deploy
  script:
    - [STEPS TO DEPLOY]

destroy:
  stage: destroy
  script:
    - [STEPS TO DESTROY]
  when: manual

上記の構成で、GitLabプロジェクト>パイプラインに移動すると、最後のコミットの横に再生ボタンが表示されます。再生ボタンをクリックすると、destroyオプションが表示されます。

7
LondonAppDev

最後に、GitLab 8.10で導入されたGitlab CI manual actions があります。

4
aux