草庐IT

玩转 ChatGPT+极狐GitLab|分分钟丝滑迁移Jenkins到极狐GitLab CI

极小狐 2024-04-10 原文

💃 自从 ChatGPT 闪亮登场以来,各种基于它的软件扩展纷至沓来。爱折腾的极狐GitLab 开发者们,也花式玩转起了 ChatGPT + 极狐GitLab,让研发工作更高效。

之前我们分享了 如何利用极狐GitLab CI/CD 完成 Jenkins 的迁移。今天有了 ChatGPT 的加持,可以分分钟完成丝滑切换,Enjoy~

可用的 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: 'git@jihulab.com: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 的切换。

有关玩转 ChatGPT+极狐GitLab|分分钟丝滑迁移Jenkins到极狐GitLab CI的更多相关文章

  1. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  2. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  3. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  4. ruby - 将 Gitlab 从 9.3.7 更新到 9.3.8 安装 re2 时出错 - 2

    我们在Ubuntu14.04和Gitlab9.3.7上运行,运行良好。我们正在尝试更新到Gitlabv9.3.8的最新安全补丁,但它给我们这个错误:Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension.currentdirectory:/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/re2-1.0.0/ext/re2/usr/local/bin/ruby-r./siteconf20170720-19622-15i0edf.rbextconf.rbcheckingformain(

  5. ruby-on-rails - 清除 GitLab 中的所有 Assets - 2

    我想在我公司安装的GitLab中使用自定义Logo-白色、Logo-黑色和网站图标。我用谷歌搜索了我的屁股并尝试了所有我能找到的方法来清除这些该死的图像,但似乎没有任何效果。这是唯一似乎成功运行但未删除图像的进程:bundleexecrakecache:clearRAILS_ENV=productionservicegitlabstopredis-cliFLUSHALLbundleexecrakeassets:precompileRAILS_ENV=productionservicegitlabstart然后我清除我的浏览器缓存并转到该域,再次出现相同的该死的图像!我什至删除了我能从应

  6. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  7. 【ChatGPT】ChatGPT 的 N 种用法 - 2

    目录ChatGPT简介技术原理应用未来发展ChatGPT的10 种用法ChatGPT简介ChatGPT是一种基于深度学习的大型语言模型,由OpenAI公司开发。技术原理GPT是GenerativePre-trainedTransformer的缩写,意为生成式预训练变压器。它的技术原理是使用了一个基于注意力机制的变压器(Trans

  8. ruby - 如何使用 webhooks 从 Gitlab 推送到 Github - 2

    如果我只能找到正确的手册,我的Google-fu就会让我失望,因为这看起来很明显。我有一个由我们的托管服务提供商安装的Gitlab服务器Gitlab服务器有很多项目。对于其中一些项目,我希望Gitlab每次从本地客户端推送到Gitlab时自动推送到远程存储库(在本例中为Github)。像这样:客户端-->gitlab-->github任何标签和分支也应该被推送。AFAICT我有3个选择:用两个Remote配置本地客户端,同时推送到Gitlab和Github。我想避免这种情况,因为开发人员。在Gitlab服务器上的存储库中添加一个gitpost-receiveHook。这将是最灵活的(我

  9. 「想体验ChatGPT中文聊天?」那快进来,你用不上算我输 - 2

    ♥️作者:白日参商🤵‍♂️个人主页:白日参商主页♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!「想体验ChatGPT中文聊天?」那快进来,你用不上算我输项目场景:项目条件一、那就开始吧1、安装ChatGPT-Desktop2、OpenAPI设置二、使用实例恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!恭喜你!!!配置成功了!!!API和URL都是博主免费提供给大家的!!!🎈🎈加油!加油!加油!加油🎈欢迎评论💬点赞👍🏻收藏📂加关注+!项目场景:近几个月可以说ChatGPT是火得一

  10. 半个月狂飙1000亿,ChatGPT概念股凭什么? - 2

    ChatGPT掀起了AI股历史上最疯狂的一轮市值狂飙。自春节后至今,ChatGPT概念股开始了暴走模式,短短半月时间,海天瑞声、开普云等ChatGPT概念股市值累计增加了近1400亿。如此的爆炸效应,得益于ChatGPT所展现出商业化落地的巨大潜力。要知道,在此之前,无论是十年AI投入超千亿的百度,还是困在硬件化里的AI四小龙,都在重复着AI商业化难落地的故事。ChatGPT的出现,让AI从生产力的赋能者直接成为一种创造生产力的工具。随着订阅模式的推出,ChatGPT已经成为第一个以AI技术为核心直接变现的消费者应用。本文持有以下核心观点:1、ChatGPT是AI技术迭代的受益者。过去受限技术

随机推荐