CI将分支推送到远程部署

所以,我在Enterprise Edition上运行GitLab CI来构建我的项目,然后部署成功。

我有两个问题:1.我无法git push我的分支git push送到安全的SSH远程。 2.我如何强制它仅部署在成功的构建中?

这是我目前的配置:

stages:
  - build
  - deploy

services:
  - mysql:latest

variables:
  MYSQL_DATABASE: el_duderino
  MYSQL_ROOT_PASSWORD: mysql_strong_password

node:
  image: monostream/nodejs-gulp-bower
  stage: build
  script:
    - npm install
    - bower install --allow-root
    - gulp

migrations:
  image: eboraas/laravel
  stage: build
  script:
    - composer install
    - cp .env.testing .env
    - php artisan key:generate
    - php artisan migrate --force
    - echo "Done!"

deploy_test:
  stage: deploy
  script:
    - echo "Deploy to test server."
    - git remote set-url test ssh://git@10.16.0.148/var/repo/subPortalTest.git
    - git push test master
  environment:
    name: Test
    url: http://10.16.0.148/
  only:
    - master

我的deploy_test作业失败并返回以下内容:

主机密钥验证失败。

致命:无法从远程存储库读取。

请确保您拥有正确的访问权限并存在存储库。


  • 我如何强制它只部署在一个成功的版本上
    答:可以使用dependency和on_success yaml命令,当构建验证作业成功时,部署作业将根据它的依赖性执行。
    并且使用on_success命令,以便以前的作业将成功执行,然后将启动此作业。
  • 喜欢

    JobDeployToProd:
        stage: Deploy
        script: your commands
        tags:
         - Deploy
        allow_failure: false
        when : on_success
        dependency: JobBuildVerify 
    
    链接地址: http://www.djcxy.com/p/85113.html

    上一篇: CI Push Branch to Remote on Deploy

    下一篇: Push from GitLab to Azure