Files
gitlab-ci/lint/markdown.gitlab-ci.yaml
Jon 04e7e928e0 feat(ci_rules): add exists and changes for rules
now defined jobs check for existance of file and for changes
to launch a job

!41 #32
2023-06-02 15:26:35 +09:30

88 lines
3.0 KiB
YAML

.Lint_Markdown:
image: node:alpine3.14
stage: validation
variables:
MDLINT_PATHS: "**/*.md **/**/*.md **/**/**/*.md **/**/**/**/*.md **/**/**/**/**/**/*.md #CHANGELOG.md !gitlab-ci"
DEFAULT_ROOT_DIR: "./gitlab-ci"
MD_LINT_CONFIG_PATH: ""
before_script:
- mkdir -p "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/lint_markdown"
- if [ "0$JOB_ROOT_DIR" == "0" ]; then ROOT_DIR=$DEFAULT_ROOT_DIR; else ROOT_DIR=$JOB_ROOT_DIR; fi
- echo "[DEBUG] ROOT_DIR[$ROOT_DIR]"
- if [ "0$MD_LINT_CONFIG_PATH" != "0" ]; then cp "$MD_LINT_CONFIG_PATH/.markdownlint.json" $CI_PROJECT_DIR/.markdownlint.json; fi
- cp -f "$ROOT_DIR/lint/.markdownlint-cli2.jsonc" "$CI_PROJECT_DIR/.markdownlint-cli2.jsonc"
- npm install markdownlint-cli2 --global
- npm install markdownlint-cli2-formatter-junit --global
script:
- echo "[DEBUG] MDLINT_PATHS=$MDLINT_PATHS"
- markdownlint-cli2 $MDLINT_PATHS 1>&1 || EXITCODE=$?
- echo DEBUG EXITCODE[$EXITCODE]
- rm -f "$CI_PROJECT_DIR/.markdownlint-cli2.jsonc"
- if [ "0$MD_LINT_CONFIG-PATH" != "0" ]; then rm -f "$CI_PROJECT_DIR/.markdownlint.json"; fi
- mv *.junit.xml "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/lint_markdown/markdown_lint.junit.xml"
artifacts:
expire_in: 24 hrs
when: always
paths:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/lint_markdown/*"
reports:
junit:
- "$CI_PROJECT_DIR/artifacts/$CI_JOB_STAGE/lint_markdown/*.junit.xml"
rules:
- if: '$JOB_STOP_LINT_MARKDOWN'
when: never
- if: # condition_any_branch_push
$CI_COMMIT_BRANCH != null &&
$CI_COMMIT_TAG == null &&
$CI_PIPELINE_SOURCE == "push"
exists:
# - "**.md"
# - "**/**.md"
- '{!docs/**,!pages/**,!gitlab-ci/**, !website-template/**, **}/*.md'
when: always
- when: never
.Lint_Markdown_Docs:
variables:
MDLINT_PATHS: "docs/*.md docs/**/*.md docs/**/**/*.md docs/**/**/**/*.md docs/**/**/**/**/**/*.md #CHANGELOG.md !gitlab-ci !website-template"
MD_LINT_CONFIG_PATH: "$CI_PROJECT_DIR/website-template"
extends: .Lint_Markdown
rules:
- if: '$JOB_STOP_LINT_MARKDOWN_DOCS'
when: never
- if: # condition_master_branch_push
$CI_COMMIT_BRANCH == "master" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{docs/**,pages/**}/*.md'
when: always
- if: # condition_dev_branch_push
$CI_COMMIT_BRANCH == "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{docs/**,pages/**}/*.md'
changes:
paths:
- '{docs/**,pages/**}/*.md'
compare_to: 'master'
when: always
- if: # condition_not_master_or_dev_push
$CI_COMMIT_BRANCH != "master" &&
$CI_COMMIT_BRANCH != "development" &&
$CI_PIPELINE_SOURCE == "push"
exists:
- '{docs/**,pages/**}/*.md' # works
changes:
paths:
#- '{docs/*,pages/*}*.md'
- '{docs/**,pages/**}/*.md'
compare_to: 'development'
when: always
- when: never