使用gitlab实现CI
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用gitlab实现CI相关的知识,希望对你有一定的参考价值。
我在gitlab repo上有一个node.js,我试图使用CI管道将它推入AWS EC2 Ubntu服务器。
我试图在我的gitlab repo和EC2实例之间实现CI管道,每次我推送新代码时管道都会被触发,代码会自动转到EC2服务器。
我添加了带有名称的环境和yaml文件的url。 (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服务器?我需要的不仅仅是环境标签吗?
答案
是。您还需要使用脚本标记实现实际部署。我担心没有神奇的方式会发生这种情况。
因此,要么使用SCP或SSH命令,要么使用您用于将应用程序部署到environment
中指定的服务器的任何内容。
正如Gitlab docs解释:
环境就像CI作业的标记,描述代码的部署位置。当作业将代码版本部署到环境时,会创建部署,因此每个环境都可以有一个或多个部署。
另一答案
检查部署阶段的状态以查找问题。
在AWS设置敏感变量(名称,访问键)的项目设置(在Gitlab中)上部署并在gitlab-ci.yml中使用它们
我认为这个link适合你。
以上是关于使用gitlab实现CI的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins + Gitlab + harbor + Kubernetes实现CI/CD
Jenkins + Gitlab + harbor + Kubernetes实现CI/CD