首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GitLab连续部署NodeJS

使用GitLab连续部署NodeJS
EN

Stack Overflow用户
提问于 2016-02-17 17:39:24
回答 3查看 14.2K关注 0票数 16

我有一个用NodeJS开发的应用编程接口,并通过一个.gitlab-ci.yml文件成功地设置了持续集成。下一阶段是设置连续部署到Heroku,如果所有测试都在主分支上通过。

有很多关于Ruby和Python应用程序部署的教程,但没有关于NodeJS的。目前,我的.gitlab-ci.yml文件如下所示:

代码语言:javascript
复制
image: node:latest

job1:
  script: "ls -l"

test:
  script: "npm install;npm test"

production:
  type: deploy
  script:
  - npm install
  - npm start
  - gem install dpl
  - dpl --provider=heroku --app=my-first-nodejs --api-key=XXXXXXXXXX
  only:
  - master

Ruby和Python教程使用dpl工具进行部署,但是部署后如何在服务器上启动NodeJS脚本呢?

在添加生产部分并将其推送后,测试运行并通过,但是部署阶段被挂起。控制台为空。有没有人成功地为NodeJS设置了CD脚本?

EN

回答 3

Stack Overflow用户

发布于 2017-02-21 16:07:16

您可以使用更简单的YAML脚本,在其中可以定义CI的阶段(在生产部署之前运行测试),然后可以在Heroku部署阶段使用不同的映像。因此,对于节点应用程序,您可以将默认图像定义为node:latest。然后,对于使用dpl的生产部署,您可以使用ruby映像。

代码语言:javascript
复制
image: node:latest

stages:
  - job1
  - test
  - production

job1:
  stage: job1
  script: "ls -l"

test:
  stage: test
  script: 
    - npm install
    - npm test
  artifacts:
    paths:
      - dist/

production:
  type: deploy
  stage: production
  image: ruby:latest
  script:
    - apt-get update -qy
    - apt-get install -y ruby-dev
    - gem install dpl
    - dpl --provider=heroku --app=my-first-nodejs --api-key=XXXXXXXXXX
  only:
    - master
票数 11
EN

Stack Overflow用户

发布于 2016-02-23 07:42:56

好吧,这不会是最长的答案,但是这个may help you

如果它消失了,下面是内容:

代码语言:javascript
复制
  image: node:argon

  before_script:
    - apt-get -qq update
    - apt-get -qq install -y python2.7 python2.7-dev build-essential make gcc g++ libicu-dev
    - npm -g install npm --silent
    - "echo -e \"export default {CLIENT_ID: '$CLIENT_ID'}\" > app/scripts/settings.js"
    - npm set progress=false
    - npm install --silent

  stages:
    - test
    - build
    - clean_up

  run_tests:
    stage: test
    script:
      - npm test

  build_and_deploy_prod:
    stage: build
    script:
      - npm run build
      - mkdir  dist/build
      - tar czfC dist/build/latest.tar.gz dist/$CI_BUILD_REF_NAME/ .
      - tar czfC dist/build/$CI_BUILD_REF.tar.gz dist/$CI_BUILD_REF_NAME/ .
      - apt-get install -yqq ruby ruby-dev
      - gem install dpl
      - dpl --skip_cleanup --provider=s3 --region=eu-west-1 --access-key-id=$AWS_ACCESS_KEY --secret-access-key=$AWS_SECRET_KEY --bucket=$AWS_BUCKET --local-dir=dist/build/ --upload-dir=$CI_BUILD_REF_NAME
    artifacts:
      paths:
        - dist/$CI_BUILD_REF_NAME/
    only:
      - master
      - develop

  clean_up_job:
    stage: clean_up
    script:
      - rm -rf node_modules
      - rm -rf ~/.node-gyp
    when: on_failure
票数 10
EN

Stack Overflow用户

发布于 2018-07-06 13:09:28

这是一篇关于使用GitLab连续部署NodeJS的很好解释的文章:

LINK

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35452878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档