vue+jenkins+gitlab实现CI/CD

程序你得看得懂 2024-09-15 03:41:28
在现代Web开发中,实现持续集成/持续部署(CI/CD)是提升开发效率和代码质量的重要手段。本文将详细介绍如何使用Vue.js、Jenkins和GitLab来实现自动化打包和部署的过程。 1. 环境准备GitLab: 用于版本控制。Jenkins: 用于自动化构建和部署。Vue.js: 前端框架。Nginx: 作为Web服务器(可选,视部署环境而定)。2. 项目结构假设你的Vue.js项目结构如下: my-vue-app/ ├── public/ ├── src/ ├── .gitlab-ci.yml ├── Jenkinsfile ├── package.json └── ...3. 配置GitLab CI在GitLab中,使用.gitlab-ci.yml文件来定义CI流水线。这个文件会告诉GitLab在代码提交时执行哪些步骤。 .gitlab-ci.yml示例stages: - build - deploy build_job: stage: build script: - npm install - npm run build artifacts: paths: - dist/ only: - main # 只在main分支触发 deploy_job: stage: deploy script: - echo "Triggering Jenkins deployment..." - curl -X POST "http://your-jenkins-url/generic-webhook-trigger/invoke?token=your-jenkins-token" only: - mainbuild_job: 安装依赖并构建项目。deploy_job: 触发Jenkins部署(通过Jenkins的Generic Webhook Trigger插件)。4. 配置Jenkins安装所需插件Git PluginGeneric Webhook Trigger PluginPublish Over SSH Plugin (如果需要将文件传输到远程服务器)创建Jenkins Pipeline在Jenkins中创建一个新的Pipeline类型的Job,并将下面的脚本内容粘贴到Pipeline的Script框中或创建一个Jenkinsfile。 Jenkinsfile示例pipeline { agent any environment { // 配置环境变量 GIT_REPO = 'http://your-gitlab-url/your-group/my-vue-app.git' GIT_CREDENTIALS = 'your-git-credentials-id' // 在Jenkins中配置的Git凭证ID DEPLOY_DIR = '/path/to/your/deploy/directory' // 部署目录 } stages { stage('Checkout') { steps { git credentialsId: GIT_CREDENTIALS, url: GIT_REPO, branch: 'main' } } stage('Build') { steps { script { // 如果在Jenkins服务器上已经安装了Node.js和npm,可以直接执行 sh 'npm install' sh 'npm run build' } } } stage('Deploy') { steps { script { // 将构建结果复制到部署目录 sh "cp -r dist/* ${DEPLOY_DIR}" // 如果需要,可以通过SSH发布到远程服务器 // sshPublisher( // publishers: [ // sshPublisherDesc( // configName: 'your-ssh-config', // transfers: [ // sshTransfer( // sourceFiles: 'dist/', // removePrefix: 'dist', // remoteDirectory: '/path/to/remote/deploy/directory', // execCommand: 'sudo systemctl restart nginx' // 重启Nginx服务 // ) // ], // usePromotionTimestamp: false, // useWorkspaceInPromotion: false, // verbose: true // ) // ] // ) } } } } post { success { echo 'Build and deploy completed successfully.' } failure { echo 'Build or deploy failed.' } } }5. 配置Jenkins的Webhook在Jenkins中配置Generic Webhook Trigger,以便在GitLab触发时能够接收并处理。 进入你的Jenkins Job配置页面。在“构建触发器”部分,勾选“Generic Webhook Trigger”。配置Token(与.gitlab-ci.yml中的token一致)。6. 配置Git凭证和SSH(如果需要)在Jenkins中配置Git凭证,以便在Pipeline中拉取代码。如果需要将文件传输到远程服务器,配置SSH以及相应的sshPublisher部分。7. 触发CI/CD流程提交代码到GitLab。GitLab CI会首先运行,执行构建步骤并生成构建产物。构建成功后,GitLab CI触发Jenkins Webhook。Jenkins接管,拉取最新代码,再次构建,并部署到指定目录。
0 阅读:3

程序你得看得懂

简介:感谢大家的关注