@catladder/pipeline
Version:
Panter workflow for cloud CI/CD and DevOps
42 lines (34 loc) • 1.25 kB
text/typescript
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",
};
// currently, we consider all triggered pipelines as agent triggers
export const RULE_NEVER_ON_AGENT_TRIGGER: GitlabRule = {
if: '$CI_PIPELINE_SOURCE == "trigger"',
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$/";