干货!分分钟丝滑迁移Jenkins到极狐GitLab CI
玩转 ChatGPT+极狐GitLab
分分钟丝滑迁移Jenkins到极狐GitLab CI
自从 ChatGPT 闪亮登场以来,各种基于它的软件扩展纷至沓来。爱折腾的极狐GitLab 开发者们,也花式玩转起了 ChatGPT + 极狐GitLab,让研发工作更高效。
可用的 Jenkinsfile
下面是一个完整可用的 Jenkinsfile 内容,实现了一个 node 应用程序从构建到部署的全过程。
点击↓↓↓体验
全过程 Demo 所演示的仓库托管在极狐GitLab SaaS
pipeline { agent any stages { stage('Source Code Checkout') { steps { checkout scmGit( branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [ [ credentialsId: 'JiHu-GitLab-SSH-Key', url: **********:devops-summit-workshop/dev-sec-ops.git' ] ] ) } } stage('build') { steps{ withCredentials([usernamePassword(credentialsId: 'Docker-Hub-Cred', passwordVariable: 'password', usernameVariable: 'username')]) { sh "docker login docker.io -u $username -p $password" sh "docker build -t dllhb/node:1.0 ." sh "docker push dllhb/node:1.0" } } } stage('test') { steps { sh "Begin to do test" sh ''' yarn install --cache-folder .yarn yarn test ''' } } stage('deploy') { steps { sh "Begin to deploy" sh "docker run --rm -p 3000:3000 dllhb/node:1.0" } } } }
在 Jenkins 上可以得到如下运行结果:
注意:如果要在 Jenkins 上完成上述流程,需要的大概步骤如下:
Step 1: 安装 Jenkins 实例;
Step 2: 配置 Jenkins,诸如极狐GitLab 插件(用于从极狐GitLab 拉取源代码)、添加 Credentials(用于权限验证的极狐GitLab Access Token、用于拉取代码的极狐GitLab SSH Key、用于将镜像推动到 Dockerhub 的用户名和密码);
Step 3: Jenkinsfile 的编写以及 Jenkins Job 的调试。
可以看出来整个流程还是比较耗时的。而极狐GitLab CI 是极狐GitLab 一体化 DevOps 平台的重要功能,不需要额外安装第三方工具链、不需要额外配置即可开箱使用对应的 CI/CD 功能。
下面用 ChatGPT 将上述的 Jenkinsfile 转换成 .gitlab-ci.yml 。
ChatGPT 大发神威
只需要礼貌的对 ChatGPT 说出下面这段话即可:
然后 ChatGPT 就很认真的给出了以下答案:
还不忘友情提醒:
由于英文阅读起来费劲,干脆让 ChatGPT 做了一个翻译:
当然,上述的 .gitlab-ci.yml 文件需要稍微做一些修改,因为:
- 极狐GitLab 是一体化 DevOps 平台,源代码和 CI/CD 在同一个平台,因此 CI/CD 的构建不需要刻意拉取本仓库源代码(每次构建开始都会默认拉取代码)
- 极狐GitLab 有内置的镜像仓库用来存储 docker image,无需把镜像推送到 Dockerhub。关于极狐GitLab 镜像仓库的使用可以查看公众号文章 极狐GitLab 镜像仓库的使用技巧。
调试完成后在极狐GitLab 上进行验证。
极狐GitLab CI/CD 验证结果
将 ChatGPT 给的例子按照上述建议修改之后,贴入 .gitlab-ci.yml 文件进行测试:
stages: - build - test - deploy build: stage: build image: docker:20.10.7-dind tags: - chatgpt variables: DOCKER_DRIVER: overlay2 before_script: - echo "$CI_REGISTRY_PASSWORD" | docker login $CI_REGISTRY -u "$CI_REGISTRY_USER" --password-stdin script: - docker build -t $CI_REGISTRY_IMAGE/node:1.0 . - docker push $CI_REGISTRY_IMAGE/node:1.0 test: stage: test image: node:latest script: - yarn install --cache-folder .yarn - yarn test deploy: stage: deploy image: docker:20.10.7-dind script: - docker run --rm -p 3000:3000 $CI_REGISTRY_IMAGE/node:1.0
触发 CI/CD,可以看到如下构建结果:
至此,在 ChatGPT 的帮助下,我们就快速实现了从 Jenkins 到极狐GitLab CI 的切换。
以上就是今天的分享,谢谢大家!
#极狐Gitlab##技术栈##研发##chatgpt#