gogs创建项目_OpenShift 4 实现一个Gogs+Nexus+Sonarqube的Jenkins Pipeline

本文介绍了一个复杂的Jenkins CI/CD Pipeline流程实践,包括从Gogs获取Java应用代码、编译成WAR包、功能测试、代码分析、推送至Nexus、构建镜像、部署到开发和准上线环境等步骤。
摘要由CSDN通过智能技术生成
  • 场景说明
  • 运行环境
  • 配置操作过程
    • 准备运行所需资源
    • 配置Gogs并导入应用代码
  • 运行Jenkins Pipeline

场景说明

本文实现的是一个比较复杂的Jenkins的CI/CD Pipeline流程。该流程实现如下持续集成和部署场景:

  1. 首先从Git(Gogs)中获取java应用代码。
  2. 然后将其编译成WAR应用包。
  3. 使用JUnit进行功能测试
  4. 使用SonarQube对其进行代码分析
  5. 将WAR应用包推送至Nexus的Maven仓储中
  6. 构建应用Image
  7. 部署到DEV环境
  8. 人工确认是否迁生至STAGE环境
  9. 最后将App Image部署至STAGE环境
5153d41f118e86c53e029461e37ffaae.png

运行环境

本场景可以在OpenShift 3.11/4.x运行环境,并已经在minishift/CRC的运行环境中验证。不过由于运行的软件比较多,如使用minishift/CRC,建议启动时指定内存至少为10GB。

配置操作过程

准备运行所需资源

  1. 新建三个项目,分别是运行Jenkins的CICD项目,以及开发(Dev)和准上线环境(Stage)。
$ oc new-project my-dev$ oc new-project my-stage$ oc new-project my-cicd
  1. 用管理员用户执行命令,允许从my-cicd项目访问另外两个项目的资源。
$ oc policy add-role-to-group edit system:serviceaccounts:my-cicd -n my-dev$ oc policy add-role-to-group edit system:serviceaccounts:my-cicd -n my-stage
  1. 执行命令创建应用模板(其实也可直接基于模板文件创建应用)
$ oc create -f https://raw.githubusercontent.com/liuxiaoyu-git/OpenShift-HOL/master/Maven-Gogs-Sonar-Pipeline-Template.yaml -n openshift
  1. 成功后可以进入OpenShift Console中的Developer视图,然后在my-cicd项目中进入“+Add”的“From Catalog”。
  2. 在模板中选择CI/CD分类中点击下图的“Jenkins (Ephemeral)”,然后接受所有缺省选项,直到创建成功。
  3. 再次执行第4步,在模板中选择CI/CD分类中点击“Gogs+Nexus+Sonar used by Jenkins”,然后点击“Instantiate Template”,然后在“Instantiate Template”页面中将DEV和STAGE项目名设为my-dev和my-stage,最后点击Create即可。
  4. 在部署完后(其状态应该是深蓝色),可以在OpenShift Console的Developer视图中查看my-cicd项目部署的应用和状态。应该如下图包括6个部署(其中4个应用2个数据库)。此时可通过以下地址和用户信息访问Jenkins、Gogs、Nexus和SonarQube。
    https://jenkins-my-cicd.apps-crc.testing
    http://gogs-my-cicd.apps-crc.testing (gogs/gogs)
    http://nexus-my-cicd.apps-crc.testing (admin/admin123)
    https://sonarqube-my-cicd.apps-crc.testing (admin/admin)
49a428400cd40ef2d1fea4495a75e54e.png

配置Gogs并导入应用代码

为了能让Jenkins从Gogs获取应用代码,我们先需要将应用代码导入到Gogs。

  1. 访问http://gogs-my-cicd.apps-crc.testing,在首页面右上方点击“Sign In”链接,用gogs/gogs登录。
  2. 登陆后点击右上方“+”图标,然后在下拉菜单中选择“New Migration”。
  3. 在Clone Adress栏中填https://github.com/OpenShiftDemos/openshift-tasks,然后在Repository填openshift-task,最后点击Migration Repository。成功会看到gogs/openshift-tasks的Repository和相关应用代码。

运行Jenkins Pipeline

  1. 执行命令启动Jenkins的Pipeline流程。
$ oc start-build tasks-pipeline
  1. 可以在OpenShift Console中进入Builds->tasks-pipeline->Builds->tasks-pipeline-1查看执行进度。当出现以下步骤时, 点击"Input Required"链接跳转到Jenkins。
  2. 在Jinkins Console中通查看Jenkins -> my-cicd -> my-cicd/tasks-pipeline -> #1的Console Output,此时执行停在以下步骤中。然后点击Promote即可。
  3. 访问SonarQube的控制台,可以查看Bugs的情况。
  4. 访问Nexus控制台,查看下载的应用依赖文件。
  5. 可以访问以下部署在my-dev和my-stage中的应用。
    http://tasks-my-dev.apps-crc.testing/
    http://tasks-my-stage.apps-crc.testing/
6989fefcdc4aa951ad83d6669c8b4c79.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值