【问题标题】:Implementing a CI with gitlab使用 gitlab 实现 CI
【发布时间】:2018-01-24 03:14:37
【问题描述】:

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

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

我已将带有 nameurlenvironment 添加到 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 服务器? 我需要的不仅仅是环境标签吗?

【问题讨论】:

    标签: git continuous-integration gitlab gitlab-ci


    【解决方案1】:

    是的。您还需要使用脚本标签来实现实际部署。恐怕这没有什么神奇的方式会发生。

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

    正如Gitlab docs 解释的那样:

    环境就像你的 CI 工作的标签,描述代码在哪里 被部署。部署是在 jobs 部署 版本时创建的 代码到环境,因此每个环境都可以有一个或多个 部署。

    【讨论】:

      【解决方案2】:

      检查 deploy 阶段的状态以找出问题。

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

      我认为这个link 适合你。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-01
        • 2020-10-17
        • 2020-04-02
        相关资源
        最近更新 更多