我有一个用NodeJS开发的应用编程接口,并通过一个.gitlab-ci.yml文件成功地设置了持续集成。下一阶段是设置连续部署到Heroku,如果所有测试都在主分支上通过。
有很多关于Ruby和Python应用程序部署的教程,但没有关于NodeJS的。目前,我的.gitlab-ci.yml文件如下所示:
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:
- masterRuby和Python教程使用dpl工具进行部署,但是部署后如何在服务器上启动NodeJS脚本呢?
在添加生产部分并将其推送后,测试运行并通过,但是部署阶段被挂起。控制台为空。有没有人成功地为NodeJS设置了CD脚本?
发布于 2017-02-21 16:07:16
您可以使用更简单的YAML脚本,在其中可以定义CI的阶段(在生产部署之前运行测试),然后可以在Heroku部署阶段使用不同的映像。因此,对于节点应用程序,您可以将默认图像定义为node:latest。然后,对于使用dpl的生产部署,您可以使用ruby映像。
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发布于 2016-02-23 07:42:56
好吧,这不会是最长的答案,但是这个may help you。
如果它消失了,下面是内容:
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发布于 2018-07-06 13:09:28
这是一篇关于使用GitLab连续部署NodeJS的很好解释的文章:
https://stackoverflow.com/questions/35452878
复制相似问题