UNPKG

@catladder/pipeline

Version:

Panter workflow for cloud CI/CD and DevOps

67 lines (57 loc) 1.65 kB
import type { GitlabRule } from "../types"; export const RULE_CONDITION_MAIN_BRANCH = "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"; export const RULE_CONDITION_RELEASE_COMMIT = "$CI_COMMIT_MESSAGE =~ /^chore\\(release\\).*/"; export const RULE_CONDITION_NOT_RELEASE_COMMIT = "$CI_COMMIT_MESSAGE !~ /^chore\\(release\\).*/"; export const RULE_IS_MAIN_BRANCH: GitlabRule = { if: RULE_CONDITION_MAIN_BRANCH, }; export const RULE_IS_MAIN_BRANCH_AND_NOT_RELEASE_COMMIT: GitlabRule = { if: RULE_CONDITION_MAIN_BRANCH + " && " + RULE_CONDITION_NOT_RELEASE_COMMIT, }; export const RULE_NEVER_ON_RELEASE_COMMIT: GitlabRule = { if: RULE_CONDITION_RELEASE_COMMIT, when: "never", }; export const RULE_NEVER_ON_SCHEDULE: GitlabRule = { if: '$CI_PIPELINE_SOURCE == "schedule"', when: "never", }; export const RULE_IS_MERGE_REQUEST: GitlabRule = { if: "$CI_MERGE_REQUEST_ID", }; export const RULE_IS_TAGGED_RELEASE: GitlabRule = { if: "$CI_COMMIT_TAG", }; export const RULE_CONDITION_HOTFIX_BRANCH = "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/"; export const RULES_RELEASE: GitlabRule[] = [ RULE_NEVER_ON_RELEASE_COMMIT, RULE_NEVER_ON_SCHEDULE, { if: RULE_CONDITION_MAIN_BRANCH + ' && $AUTO_RELEASE == "true"', when: "on_success", }, { if: RULE_CONDITION_MAIN_BRANCH, when: "manual", }, { if: RULE_CONDITION_HOTFIX_BRANCH, when: "manual", }, ]; export const RULES_MANUAL_RELEASE: GitlabRule[] = [ RULE_NEVER_ON_RELEASE_COMMIT, RULE_NEVER_ON_SCHEDULE, { if: RULE_CONDITION_MAIN_BRANCH, when: "manual", }, { if: RULE_CONDITION_HOTFIX_BRANCH, when: "manual", }, ];