gitlab cicd 条件执行

gitlab条件、分支判断的demo

可以查看官文档:更加详细。可以实现指定分支分条件运行或者指定job分条件运行等。

---

.script:
  stage: build
  script:
    - env | grep CI_COMMIT_ | sort
    - if test -n "$CI_COMMIT_BRANCH" ; then echo "test -n CI_COMMIT_BRANCH = true"; else echo "test -n CI_COMMIT_BRANCH = false" ; fi
    - if test -n "$CI_COMMIT_TAG" ; then echo "test -n CI_COMMIT_TAG = true"; else echo "test -n CI_COMMIT_TAG = false" ; fi
    - if test -z "$CI_COMMIT_BRANCH" ; then echo "test -z CI_COMMIT_BRANCH = true"; else echo "test -z CI_COMMIT_BRANCH = false" ; fi
    - if test -z "$CI_COMMIT_TAG" ; then echo "test -z CI_COMMIT_TAG = true"; else echo "test -z CI_COMMIT_TAG = false" ; fi

# ------------------------------------------------------------------------------
# ONLY, BRANCH
only_branch_no_rhs: # run
  extends: .script
  only:
    variables:
      - $CI_COMMIT_BRANCH

only_branch_rhs_diff_null: # run
  extends: .script
  only:
    variables:
      - $CI_COMMIT_BRANCH != null

only_branch_rhs_eq_null:
  extends: .script
  only:
    variables:
      - $CI_COMMIT_BRANCH == null

only_branch_rhs_diff_empty: # run
  extends: .script
  only:
    variables:
      - $CI_COMMIT_BRANCH != ""

only_branch_rhs_eq_empty:
  extends: .script
  only:
    variables:
      - $CI_COMMIT_BRANCH == ""


# ------------------------------------------------------------------------------
# RULES, BRANCH
rules_branch_no_rhs: # run 
  extends: .script
  rules:
    - if: $CI_COMMIT_BRANCH
      when: always
    - when: never

rules_branch_rhs_diff_null: # run
  extends: .script
  rules:
    - if: $CI_COMMIT_BRANCH != null
      when: always
    - when: never

rules_branch_rhs_eq_null:
  extends: .script
  rules:
    - if: $CI_COMMIT_BRANCH == null
      when: always
    - when: never

rules_branch_rhs_diff_empty: # run
  extends: .script
  rules:
    - if: $CI_COMMIT_BRANCH != ""
      when: always
    - when: never

rules_branch_rhs_eq_empty:
  extends: .script
  rules:
    - if: $CI_COMMIT_BRANCH == ""
      when: always
    - when: never




# ------------------------------------------------------------------------------
# ONLY, BRANCH
only_tag_no_rhs:
  extends: .script
  only:
    variables:
      - $CI_COMMIT_TAG

only_tag_rhs_diff_null:
  extends: .script
  only:
    variables:
      - $CI_COMMIT_TAG != null

only_tag_rhs_eq_null: # run
  extends: .script
  only:
    variables:
      - $CI_COMMIT_TAG == null

only_tag_rhs_diff_empty: # run
  extends: .script
  only:
    variables:
      - $CI_COMMIT_TAG != ""

only_tag_rhs_eq_empty:
  extends: .script
  only:
    variables:
      - $CI_COMMIT_TAG == ""

# ------------------------------------------------------------------------------
# RULES, BRANCH
rules_tag_no_rhs:
  extends: .script
  rules:
    - if: $CI_COMMIT_TAG
      when: always
    - when: never

rules_tag_rhs_diff_null:
  extends: .script
  rules:
    - if: $CI_COMMIT_TAG != null
      when: always
    - when: never

rules_tag_rhs_eq_null: # run
  extends: .script
  rules:
    - if: $CI_COMMIT_TAG == null
      when: always
    - when: never

rules_tag_rhs_diff_empty: # run
  extends: .script
  rules:
    - if: $CI_COMMIT_TAG != ""
      when: always
    - when: never

rules_tag_rhs_eq_empty:
  extends: .script
  rules:
    - if: $CI_COMMIT_TAG == ""
      when: always
    - when: never



2, 部分文档连接

1, gitlab中文文档 https://nucosc.gitee.io/gitlabdocs/
2, 中文文档, apache出的,可以下载阅读的 https://gitlab.apachecn.org/#/
3,英文官方文档
https://docs.gitlab.com/
4,讲解的不错的文档 https://www.jianshu.com/p/3c0cbb6c2936#### gitlab条件、分支判断的demo
可以查看官文档:更加详细。可以实现指定分支分条件运行或者指定job分条件运行等。

### 极狐 GitLab CI/CD 使用教程 极狐 GitLab 是一款功能强大的 DevOps 平台,其内置的 CI/CD 功能可以帮助团队自动完成代码的构建、测试和部署过程。以下是关于如何配置和使用极狐 GitLab CI/CD 的详细介绍。 #### 基本概念 GitLab CI/CD 提供了一种基于 YAML 文件的方式来自动生成流水线 (Pipeline),该文件名为 `.gitlab-ci.yml`,位于项目的根目录下。它定义了整个 CI/CD 流程中的各个阶段及其执行的任务[^1]。 #### 配置方法 为了启用 GitLab CI/CD,需要创建并编辑项目根目录下的 `.gitlab-ci.yml` 文件。下面是一个简单的示例: ```yaml stages: # 定义流水线的不同阶段 - build - test - deploy build_job: # 定义一个 job 名称为 'build_job' stage: build # 此 job 属于 'build' 阶段 script: - echo "Building the project..." - ./gradlew assembleDebug --info test_job: # 定义另一个 job 名称为 'test_job' stage: test # 此 job 属于 'test' 阶段 script: - echo "Running tests..." - ./gradlew check deploy_job: # 定义第三个 job 名称为 'deploy_job' stage: deploy # 此 job 属于 'deploy' 阶段 script: - echo "Deploying application..." - scp app/build/outputs/apk/debug/app-debug.apk user@remote:/var/www/html/ ``` 上述配置展示了三个主要阶段:构建 (`build`)、测试 (`test`) 和部署 (`deploy`)。每个阶段都由多个 Job 组成,这些 Job 将按照顺序依次运行。 #### 运行环境设置 为了让流水线正常工作,还需要安装并注册至少一个 **Runner** 来执行实际的任务。可以通过以下命令来手动启动一个新的 Runner 实例: ```bash sudo gitlab-runner register ``` 在此过程中会提示输入几个参数,比如 URL 地址、Token 等信息,它们可以从目标项目的 Settings -> CI / CD 页面获取。 #### 高级特性 除了基础的功能外,GitLab CI/CD 还支持许多高级选项,例如条件分支控制、缓存机制以及矩阵化作业等。例如,如果希望仅当特定标签存在时才触发某些 Jobs,则可以在 `only` 或者 `rules` 关键字中指定相应的规则集。 ```yaml release_job: stage: release only: - tags # 只有推送带有 tag 的提交才会触发此 job script: - echo "Creating a new release based on this commit." ``` 以上就是有关极狐 GitLab CI/CD 的基本介绍及简单实例说明。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值