Gitee Go【基于Gitee的深度集成代码仓库的持续构建服务】国产CICD工具

Gitee Go【基于Gitee的深度集成代码仓库的持续构建服务】国产CICD工具,第1张

文章目录 1. Gitee Go 介绍2. 开通Gitee Go3. 提交一个vue项目到gitee仓库4. 制品库配置5. 添加部署机器6. 流水线配置示例7. 云服务器安装Nginx服务8. 配置vue项目部署流水线

1. Gitee Go 介绍

官网:https://gitee.com/features/gitee_go

Gitee GoGitee 推出的 CI/CD 服务,通过自定义构建流程,可以实现从代码仓库到构建部署自动化。目前已支持 MavenGradlenpmPythonAntPHPGolang 等工具和语言的持续构建与集成能力。

实现思路:
Gitee Go 提供了将项目持续集成并部署到指定主机环境中的能力,目前支持在任意可连通公网的 Linux 主机上进行部署,推荐主机环境使用 Ubuntu/CentOS

持续部署的流程:
在持续部署过程中,通过持续集成编译并打包的制品工程,结合用户定义具体的部署脚本,可以轻松将用户的代码部署到指定的机器上。

目前正在公测,可以领500分钟的免费时长,体验时长为一个月。

2. 开通Gitee Go

首先,新建一个项目gitee-go

新建仓库后,在DevOps点击Gitee Go

然后点击同意并开通Gitee Go的按钮:

3. 提交一个vue项目到gitee仓库

因为没有代码,所以不能新建流水线,所以我们准备一个vue项目推到远程仓库:

# 创建一个空的文件夹 gitee-go
cd gitee-go
# 创建vue项目
vue create gitee-go
# 初始化git
cd gitee-go
git init

# 提交到仓库
git add .
git commit -m "init"
git remote add origin https://gitee.com/xxxxxxx/gitee-go.git  # 你自己远程的仓库地址
git push origin master
4. 制品库配置

制品库主要是用于存放和管理 CI 过程产生的构建物,包括但不仅限于:二进制构建物、测试报告、其他数据报告等。 在制品库中,允许存在多个制品,单个制品支持历史版本下载和自定义标记版本号。

先随便写个,制品库标识需要唯一标识:

5. 添加部署机器

目前只支持Linux主机,推荐Ubuntu / CentOS
点击用户头像 > 设置 > 左侧【安全设置】> 计算资源管理,点击【创建主机组】:

添加完成后:

点击右边的【主机管理】,然后点击【添加新主机】:

将上面的命令复制,然后打开准备好的云主机,在SSH命令中粘贴以上命令,然后执行,执行完后会自动显示,然后勾选并点击【添加主机】按钮。

然后返回上一步,点击【关联仓库】:

6. 流水线配置示例

在完成 制品库主机组主机后,此处以构建一个 npm程序为例,在仓库中创建流水线。
回到Gitee Go的界面,点击【新建流水线】按钮:

流水线文件是放在项目根目录/.workflow/ci.yml文件里的,文件名自己取,先来小试牛刀:

name: gitee-go-vue
displayName: 'vue-Gitee GO示例'
triggers:
  push: 
    - matchType: PRECISE
      branch: master
commitMessage: ''
stages:
  - stage: 
      name: npm-build-stage
      displayName: 'npm Stage'
      failFast: false
      steps: 
        - step: npmbuild@1
          name: npm-build 
          displayName: 'npm Step'
          inputs: 
            nodeVersion: 10.1 
            goals: "node -v && npm -v"

提交后,会自动触发一次构建:

点击构建详情可以看到日志输出,打印了nodenpm版本号:

7. 云服务器安装Nginx服务

若已经安装了web服务器可以跳过此步骤。

# 将nginx放到yum repro库中
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 查看nginx信息
yum info nginx
# 使用yum安装ngnix
yum install nginx
# 启动nginx
service nginx start
# 查看nginx版本
nginx -v
# 访问nginx
curl -i localhost

访问服务器 IP 看到下面信息说明安装成功!

修改nginx配置文件:

vi /etc/nginx/conf.d/default.conf
# 重载服务
/usr/sbin/nginx -s reload

从配置文件中可以看到部署的文件在哪个目录,后面写流水线部署时需要用到。

注意云服务器的80端口需要放行。

8. 配置vue项目部署流水线

打开本地编辑器,修改ci.yml文件:

name: gitee-go-vue
displayName: 'vue-Gitee GO示例'
triggers:
  push: 
    - matchType: PRECISE
      branch: master
commitMessage: ''
stages:
  - stage: 
      name: vue-build-stage
      displayName: 'Build Stage'
      failFast: false
      steps: 
        - step: npmbuild@1
          name: vue-build 
          displayName: 'Build Step'
          inputs: 
            nodeVersion: 14.15 
            goals: |
              node -v
              npm -v
              npm install
              npm run build
            uploadArtifact: true # 构建完成后是否将构建物作为制品产出
            uploadArtifactOptions:
              artifactPath: './dist'
              artifactRepository: 'gitee-go'
              artifactName: 'product'
        - step: agent-deploy@1
          name: deploy
          dependsOn: vue-build 
          displayName: '部署发布' 
          inputs: 
            hostGroupID: 'ali-server'
            minComplicating: 0 
            maxComplicating: 2 
            deployArtifact:
              - name: 'vue-prod'
                source: build@vue-build-stage/vue-build
                artifactRepository: 'compiled-artifact'
                artifactName: 'server'
                target: /usr/share/nginx/data
                isForce: true
            script: |
              rm -rf /usr/share/nginx/html/*
              tar -zxf /usr/share/nginx/data/product.tar.gz -C /usr/share/nginx/html
              cd /usr/share/nginx/html/dist
              mv * ../
              cd ..
              rm -rf dist
              rm -rf product.tar.gz
              rm -rf /usr/share/nginx/data/product.tar.gz

接下来就提交代码到gitee就行了,等待自动打包 > 构建 > 部署:

打开浏览器看看效果:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995968.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存