Gitlab-Runner跑起来!

CI/CD

  1. 总体概括

CI/CD 是持续集成(Continuous Integration)和持续部署(Continuous Delivery/Deployment)的缩写。

持续集成Continuous Integration 持续交付Continuous Delivery 持续部署Continuous Deployment

CI/CD流程如下:

  1. 开发人员向源代码管理系统(如GitLab/GitHub)推送代码。

  2. 推送触发CI服务器(如GitLab CI、Jenkins、Travis CI等)自动构建代码。

  3. 构建过程运行单元测试和集成测试来验证代码的正确性。

  4. 如果构建成功并通过测试,则代码部署到生产环境或其他环境中。

  5. 部署后运行验收测试来确认部署的应用程序符合规格。

  6. 什么是持续集成: 持续集成指的是频繁地(通常每天多次)将开发人员的工作集成到主分支中,以便尽早发现并解决集成问题。它的目的是让开发团队能够更频繁地推送代码变更,同时也要确保主分支中的代码始终是健康的和通过测试的。 持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试 持续集成通过自动化构建、自动化测试以及自动化部署加上较高的集成频率.保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态。

  7. 什么是持续交付: 持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境

  8. 持续部署: 在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。

持续部署则是指软件的自动构建、测试和部署。在持续部署流程中,只要开发人员向分支推送更改,就会自动触发构建、测试和部署过程。

CI/CD的主要优点有: • 提高软件质量:频繁构建和测试可快速发现并修复错误。 • 减少集成问题:小步迭代避免大批量更改导致的集成问题。 • 快速反馈:及时发现问题,对开发人员的学习和进步很有帮助。 • 持续交付:频繁自动部署让用户更早体验到新功能。 • 减少部署风险:小步部署减少每次部署的代码量,容易回滚,降低风险。

主流的CI/CD工具有: • GitLab CI:GitLab自带的CI/CD解决方案,易于集成到Git工作流程。 • Jenkins:开源的CI/CD工具,插件丰富,扩展性强。 • Travis CI:流行的开源CI/CD工具,易于与GitHub集成。 • CircleCI:流行的SAAS CI/CD服务,界面友好,配置灵活。 • Azure DevOps:Microsoft提供的CI/CD服务,与Azure平台深度集成。

Alt text

Alt text

gitlab 启用或关闭cicd功能:

要在项目中禁用极狐GitLab CI/CD:

在顶部栏上,选择 菜单 > 项目 并找到您的项目。 在左侧边栏中,选择 设置 > 通用。 展开 可见性,项目功能,权限。 在 仓库 部分,关闭 CI/CD。 选择 保存更改。

使用:

要使用 GitLab CI/CD,您需要:

托管在 Git 仓库中的应用程序代码。 仓库根目录中名为 .gitlab-ci.yml 的文件,其中包含 CI/CD 配置。

当您将 .gitlab-ci.yml 文件添加到仓库时,极狐GitLab 会检测到它,并且名为 GitLab Runner 的应用程序会运行作业中定义的脚本。

.gitlab-ci.yml 文件可能包含:

stages:
  - build
  - test

build-code-job:
  stage: build
  script:
    - echo "Check the ruby version, then build some Ruby project files:"
    - ruby -v
    - rake

test-code-job1:
  stage: test
  script:
    - echo "If the files are built successfully, test some files with one command:"
    - rake test1

test-code-job2:
  stage: test
  script:
    - echo "If the files are built successfully, test other files with a different command:"
    - rake test2

创建GitLab仓库并上传代码 首先,需要在GitLab上创建一个新的仓库,并将Vue前端项目的代码上传到该仓库。可以使用Git命令行或Git GUI工具来完成这个步骤。

安装GitLab Runner GitLab Runner是一个开源的工具,用于在GitLab上运行CI/CD管道。需要在服务器上安装GitLab Runner,并将其注册到GitLab中。

创建.gitlab-ci.yml文件 在Vue前端项目的根目录下创建一个名为.gitlab-ci.yml的文件。这个文件定义了GitLab CI/CD管道的流程和步骤。

下面是一个示例的.gitlab-ci.yml文件:

image: node:latest

stages:
  - build
  - deploy

build:
  stage: build
  script:
    - npm install
    - npm run build
  artifacts:
    paths:
      - dist/

deploy:
  stage: deploy
  script:
    - apt-get update -y
    - apt-get install -y sshpass
    - sshpass -p $SSH_PASSWORD ssh -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "cd /var/www/html && rm -rf *"
    - sshpass -p $SSH_PASSWORD scp -o StrictHostKeyChecking=no -r dist/* $SSH_USER@$SSH_HOST:/var/www/html/

上面的文件定义了两个阶段(stage):build和deploy。在build阶段,我们使用npm安装依赖并打包Vue项目。在deploy阶段,我们使用sshpass工具将打包好的文件上传到Web服务器的/var/www/html目录下。

配置GitLab CI/CD管道 现在,可以在GitLab上配置CI/CD管道。在GitLab仓库的设置页面中,选择CI/CD选项卡,然后启用GitLab Runner并配置GitLab Runner的标签和执行器。接下来,将SSH_USER、SSH_PASSWORD和SSH_HOST等环境变量添加到GitLab的CI/CD变量中。

运行CI/CD管道 最后,可以手动触发CI/CD管道或等待GitLab自动触发。管道运行时,GitLab Runner将在服务器上运行.gitlab-ci.yml文件中定义的步骤。如果一切顺利,Vue前端项目将自动部署到Web服务器上。

总结

使用GitLab自动部署Vue前端项目需要进行以下步骤:创建GitLab仓库并上传代码、安装GitLab Runner、创建.gitlab-ci.yml文件、配置GitLab CI/CD管道和运行CI/CD管道。这样,就可以实现自动化部署Vue前端项目的目标。