栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

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

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

1. Gitee Go 介绍

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

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

实现思路:
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"

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

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

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就行了,等待自动打包 > 构建 > 部署:

打开浏览器看看效果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909347.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号