GitLab-CI将分支推送到远程部署

时间:2016-12-22 21:48:02

标签: git continuous-integration gitlab

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

我有两个问题:  1.我不能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作业失败并返回以下内容:

  

主机密钥验证失败。

     

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

     

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

1 个答案:

答案 0 :(得分:1)

  1. 如何强制它仅部署在成功的构建上 答:你可以使用依赖和on_success yaml命令,当构建验证作业成功时,部署作业将根据它的依赖性执行。
    并使用on_success命令,以便在上一个作业成功执行后,将启动此作业。
  2. JobDeployToProd:
        stage: Deploy
        script: your commands
        tags:
         - Deploy
        allow_failure: false
        when : on_success
        dependency: JobBuildVerify 
    
相关问题