使用gitlab

时间:2018-01-24 03:14:38

标签: git continuous-integration gitlab gitlab-ci

我在gitlab repo上有一个 node.js ,我正在尝试使用CI管道将其推送到AWS EC2 Ubntu服务器。

我正在尝试在我的gitlab repo和EC2实例之间实现 CI管道,每次推送新代码时管道都会被触发,代码会自动转到EC2服务器。

我已将环境添加名称,将网址添加到yaml文件中。 (url是安装了git的AWS服务器地址)

我当前的 .gitlab-ci.yml 文件如下所示:

image: node:6.10.3

stages:
  - ver
  - init
  - tests
  - deploy

ver:
  stage: ver
  script:
    - node --version
    - whoami
init:
  stage: init
  script:
    - npm cache clean
    - rm -rf node-modules
    - npm install
run_tests:
  stage: tests
  before_script: 
    - chmod 0777 ./node_modules/.bin/_mocha
  script:
    - npm test

deploy_staging:
  stage: deploy
  script:
    - echo "Going to deploy to staging server"
  environment:
    name: staging
    url: http://EC2DNS_Address.amazonaws.com/test/ci-test

  only:
    - master

当我提交新的更改时,我可以看到管道获取触发器,但我没有看到应用于服务器的任何更改。

如何将这些更改推送到我的ubuntu服务器? 我需要的不仅仅是环境标记吗?

2 个答案:

答案 0 :(得分:3)

是。您还需要使用脚本标记实现实际部署。我担心没有神奇的方式会发生这种情况。

因此,要么使用SCP或SSH命令或您使用的任何内容将应用程序部署到environment中指定的服务器。

正如Gitlab docs解释:

  

环境就像CI作业的标签,描述代码的位置   部署。部署是在作业部署版本时创建的   代码到环境,所以每个环境都可以有一个或多个   部署。

答案 1 :(得分:1)

检查部署阶段的状态以查找问题。

在AWS设置敏感变量(名称,访问密钥)上部署项目设置(在Gitlab中)并在gitlab-ci.yml中使用它们

我认为link适合你。