首页 > 其他分享 >如何搭建 Vue.js 开源项目的 CI/CD 流水线

如何搭建 Vue.js 开源项目的 CI/CD 流水线

时间:2025-01-11 23:57:50浏览次数:3  
标签:CI Vue Actions CD GitHub 流水线 Jenkins js

在这里插入图片描述
在这里插入图片描述

网罗开发 (小红书、快手、视频号同名)

  大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。

图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:极星会首批签约作者

文章目录

摘要

本文旨在探讨如何为开源的 Vue.js 项目构建 CI/CD 流水线,以实现自动化的构建、测试和发布流程。通过使用 GitHub Actions 和 Jenkins 等工具,可以显著提高开发效率,减少手动操作带来的错误。文章将详细介绍流水线的设计和实现,并提供可运行的示例代码模块。

引言

随着前端技术的不断发展,Vue.js 凭借其简洁、灵活和高效的特性,已经成为众多开发者心中的首选。然而,对于开源项目来说,缺乏自动化的构建和发布流程会导致开发效率低下,且手动操作容易出错。因此,搭建 CI/CD 流水线成为提高项目质量和开发效率的关键。

选择合适的 CI/CD 工具

  1. GitHub Actions

    • GitHub 提供的 CI/CD 服务,支持自定义工作流程。
    • 与 GitHub 仓库无缝集成,方便管理。
  2. Jenkins

    • 一个强大的持续集成/持续部署(CI/CD)工具,支持多种语言和平台。
    • 需要单独安装和配置,但功能强大且灵活。

GitHub Actions 实现 CI/CD 流水线

GitHub Actions 配置文件

在 Vue.js 项目的根目录下创建一个名为 .github/workflows/ci-cd.yml 的文件,这是 GitHub Actions 的配置文件。

name: CI/CD Pipeline

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Build project
      run: npm run build

    - name: Run tests
      run: npm run test

    - name: Deploy to server (optional)
      # 这里可以添加部署到服务器的步骤,例如使用 SSH 部署工具
      # 需要先配置服务器的 SSH 密钥等
      # run: scp -r dist/* user@yourserver:/path/to/deploy/directory

自动化测试和构建

package.json 文件中配置 scripts,以便在 CI/CD 流水线中运行测试和构建命令。

{
  "scripts": {
    "build": "vue-cli-service build",
    "test": "jest"
  }
}

代码示例

  • 示例项目结构
my-vue-project/
├── .github/
│   └── workflows/
│       └── ci-cd.yml
├── dist/
├── node_modules/
├── public/
├── src/
├── package.json
└── vue.config.js
  • 示例 vue.config.js 配置
module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/'
}

Jenkins 实现 CI/CD 流水线

Jenkins 配置步骤

  1. 安装 Jenkins:在服务器上安装 Jenkins,并配置好访问权限。
  2. 创建项目:在 Jenkins 中创建一个新项目,选择适合的项目类型(如 Maven、Gradle 等)。
  3. 配置源码管理:在项目配置中,设置源码管理(如 Git),以便 Jenkins 可以拉取最新的代码。
  4. 配置构建触发器:在构建触发器中,选择适合的触发方式(如定期轮询、代码提交等),以便 Jenkins 在适当的时机自动触发构建。
  5. 配置构建步骤:在构建步骤中,设置构建过程,包括打包、测试等。可以使用 Jenkins 提供的插件来简化构建过程。
  6. 配置发布步骤:在发布步骤中,设置发布过程,包括将构建产物部署到目标环境、执行必要的脚本等。可以使用 Jenkins 的插件(如 Publish Over SSH)来简化发布过程。

代码示例

  • 示例 Jenkinsfile
pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                git 'https://your-git-repo-url.git'
            }
        }

        stage('Build') {
            steps {
                script {
                    sh 'npm install'
                    sh 'npm run build'
                }
            }
        }

        stage('Test') {
            steps {
                script {
                    sh 'npm run test'
                }
            }
        }

        stage('Deploy') {
            steps {
                script {
                    // 部署步骤,例如使用 SSH 部署到服务器
                    // sh 'scp -r dist/* user@yourserver:/path/to/deploy/directory'
                }
            }
        }
    }
}

流水线运行和监控

  • 在 GitHub Actions 中,可以在仓库的 “Actions” 选项卡中查看流水线的运行情况和日志。
  • 在 Jenkins 中,可以在仪表盘中查看流水线的运行状态和日志,方便进行问题排查和监控。

QA环节

Q1:GitHub Actions 和 Jenkins 哪个更适合 Vue.js 项目?

A1:这取决于项目的具体需求和团队的偏好。GitHub Actions 与 GitHub 仓库无缝集成,配置简单且方便管理。而 Jenkins 功能强大且灵活,但需要单独安装和配置。

Q2:如何在 CI/CD 流水线中处理不同环境的配置?

A2:可以通过环境变量或配置文件来区分不同环境的配置。例如,在 .env 文件中定义不同环境的变量,然后在构建时根据环境变量来设置相应的配置。

总结

本文详细介绍了如何利用 GitHub Actions 和 Jenkins 为 Vue.js 开源项目设计 CI/CD 流水线,实现了自动化的构建、测试和发布流程。通过搭建 CI/CD 流水线,可以显著提高开发效率,减少手动操作带来的错误,从而提高项目的质量和稳定性。

随着前端技术的不断发展和开源社区的壮大,Vue.js 项目将会面临更多的挑战和机遇。未来,可以进一步优化 CI/CD 流水线的配置和流程,引入更多的自动化工具和技术,如自动化测试框架、性能监控工具等,以提升项目的开发效率和质量。

参考资料

标签:CI,Vue,Actions,CD,GitHub,流水线,Jenkins,js
From: https://blog.csdn.net/qq_36478920/article/details/145084353

相关文章

  • 手把手带你搭建CI/CD工作流
    一、什么是CI/CD?持续集成(ContinousIntergration,CI)是在源代码变更后自动检测、拉取、构建和进行自动化测试的过程,属于开发人员的自动化流程。该解决方案可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题。其基本思路是,自动化监测代码仓库的变化并拉取最新代码、编译构......
  • P4053 [JSOI2007] 建筑抢修
    题意:n个房子要修理,每个房子有修理时间和限制时间,如果在限制时间内房子没有修理好就报废了,问最多修理好几个房子。我们贪心的先修限制时间小的,并用一个大根堆存修理时间,如果遇到一个房子修理不了,尝试和之前修理过的房子中修理时间最长的换,这样可以减少总时长,并且也合法,因为换了之......
  • 【Java项目】基于SpringBoot+Vue的青少年心理健康教育网站的设计与实现(源码+LW+包运行
    源码获取:https://download.csdn.net/download/u011832806/90004967基于SpringBoot+Vue的青少年心理健康教育网站开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven青少年心理健康教育网站是一个专注于提供青少年心理健康知识和......
  • 基本的后端 CI/CD 管道步骤
    应包括以下步骤:构建步骤编译/转译应用程序运行单元测试运行集成测试运行静态代码分析创建docker镜像(使用Git修订号作为镜像名称)它应该在主分支和功能分支上执行(构建应该在每个分支上运行,即使没有明确的拉取请求)打包步骤将Docker镜像上传到AWSECR在GitHub操作......
  • Vue2+OpenLayers调用WMTS服务初始化天地图示例
    目录一、案例截图二、安装OpenLayers库三、WMTS服务详解四、完整代码五、Gitee源码一、案例截图二、安装OpenLayers库npminstallol三、WMTS服务详解WMTS(WebMapTileService)是一种标准的网络地图服务协议,用于提供基于瓦片的地图数据。它允许客户端请求地图的具......
  • python+uniapp基于微信小程序的小区服务管理系统java+nodejs+php-计算机毕业设计
    目录技术介绍具体实现截图微信开发者工具HBuilderXuniapp系统设计java类核心代码部分展示登录的业务流程的顺序是:可行性论证详细视频演示技术可行性系统测试系统安全性数据完整性实现思路系统实现源码获取技术介绍如今微信小程序有以下发展优势(1)无须下载,无须注......
  • python+uniapp基于微信小程序的实习生管理系统java+nodejs+php-计算机毕业设计
    目录技术介绍具体实现截图微信开发者工具HBuilderXuniapp系统设计java类核心代码部分展示登录的业务流程的顺序是:可行性论证详细视频演示技术可行性系统测试系统安全性数据完整性实现思路系统实现源码获取技术介绍如今微信小程序有以下发展优势(1)无须下载,无须注......
  • Management-DecisionMaking-Leadership-Relationship: 组织关系管理: Communication组
    Management-DecisionMaking-Leadership-Relationship:组织关系管理:Communication组织沟通与Mgmt.管理明确沟通方的“Role”与“Authorization”是人都“有公”也“有私”。组织关系的“目的”和“基础”是什么?处理好“公”与“私”,组织与自我。是人都“身在组织”:......
  • 打卡信奥刷题(583)用C++信奥P7724[普及组/提高] 远古档案馆(Ancient Archive)
    远古档案馆(AncientArchive)题目背景为了揭开月光能量背后的秘密,你来到了地下的远古档案馆。远古一族的秘密与遗忘的知识悉数贮藏于这片被尘封的迷宫中,你能成功解谜,获知远古的知识吗?题目描述远古档案馆的中心是一个解谜:有一个......
  • SCI科研论文配色方案:色彩丰富的情况下就是白背景;浅色系
    SCI科研论文配色方案浅蓝:E7EFFA浅粉:F7E1ED浅绿:AOEEE1色彩丰富的情况下就是白背景;浅色系一般采用渐变色-中间渐变柱状图,直线图配色#2F7FC1RGB:47127193#E7EFFARGB:231239250#96C37DRGB:150195125#D8383A#F7E1EDRGB:247225237#F8F3F9RGB:248243......