CI-CD配置流程

安装Runner

bash 复制代码
# 1. 先安装依赖
sudo apt update
sudo apt install -y curl ca-certificates

# 2. 拉取ubuntu的源脚本
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash

# 3. 安装gitlab-runner
sudo apt install gitlab-runner

注册runner

bash 复制代码
# 1. 启动注册流程
gitlab-runner register

# 然后输入url、runner描述、tag、executor。注册完刷新gitlab就可以看到新注册的runner

流水线自动发布项目

bash 复制代码
# ==========================================
# 1. 定义 CI/CD 的执行阶段
# ==========================================
stages:
  - build       # 第一阶段:构建
  - deploy      # 第二阶段:部署


# ==========================================
# 2. Build:手动构建
# ==========================================
docker-build:
  stage: build

  # 指定执行此任务的 Runner 标签
  tags:
    - test_runner

  # Runner 实际执行的构建命令
  script:
    - echo "开始执行 Build..."
    - echo "当前分支:$CI_COMMIT_REF_NAME"
    - echo "项目名称:$CI_PROJECT_NAME"
    - echo "提交版本:$CI_COMMIT_SHORT_SHA"

    # TODO:替换为实际的 Docker 构建和推送命令
    # - docker build -t my-image:latest .
    # - docker push my-image:latest

  # Job 执行条件
  rules:
    # 只有 develop 分支发生 Push 更新时才显示任务
    # 包括其他分支通过 MR 合并到 develop
    - if: '$CI_COMMIT_BRANCH == "develop" && $CI_PIPELINE_SOURCE == "push"'
      when: manual          # 必须手动点击 Build
      allow_failure: false  # Build 必须成功,才能继续下一阶段

    # 不满足条件时不创建这个 Job
    - when: never


# ==========================================
# 3. Deploy:手动部署
# ==========================================
docker-deploy:
  stage: deploy

  # 指定执行此任务的 Runner 标签
  tags:
    - test_runner

  # 依赖 Build Job,必须等待 Build 成功
  needs:
    - docker-build

  # Runner 实际执行的部署命令
  script:
    - echo "开始执行 Deploy..."
    - echo "部署项目:$CI_PROJECT_NAME"
    - echo "部署版本:$CI_COMMIT_SHORT_SHA"

    # TODO:替换为实际部署命令
    # - docker compose pull
    # - docker compose up -d

  # Job 执行条件
  rules:
    # 只有 develop 分支发生 Push 更新时才显示任务
    - if: '$CI_COMMIT_BRANCH == "develop" && $CI_PIPELINE_SOURCE == "push"'
      when: manual          # 必须手动点击 Deploy
      allow_failure: true   # 可以选择不部署,不影响 Pipeline 成功状态

    # 不满足条件时不创建这个 Job
    - when: never
相关推荐
Frankie_stand2 天前
测试自动化实战指南:从脚本化、自动判据到 CI 集成的完整落地路径
android·ci/cd·自动化
逐流人3 天前
手工建集群到全自动发布:k8s集群部署与DevOps流水线整合实战
ci/cd·云原生·kubernetes·云计算·devops
pengdott6 天前
Rocky linux9安装最新版sonarqube-26.10.0
ci/cd·devops·sonarqube
lsc_blog8 天前
年底还在招的岗位,先确认缺口和到岗要求
git·缓存·ci/cd·职场和发展·github
AKA__Zas8 天前
接口自动化测试(1.0 初认识
python·ci/cd·学习方法
十二同学啊9 天前
Go 工程化详解:项目结构、代码规范、测试体系与 CI/CD 实践
ci/cd·golang·代码规范
Sakura_j_h_10 天前
GitHub Actions 打包 Windows exe:中文编码与产物上传
windows·ci/cd·打包发布·github·pyinstaller·github actions
砚底藏山河10 天前
量化回测可复现流水线CI化
java·python·ci/cd·金融
X1A0RAN10 天前
Jenkins CI 流水线优化实践:基于提交指纹的任务缓存
缓存·ci/cd·jenkins