--- include: - template: Security/Secret-Detection.gitlab-ci.yml image: registry.git.saibotk.de/saibotk.de/infrastructure-ci-container:latest variables: ANSIBLE_FORCE_COLOR: 'true' PY_COLORS: '1' stages: - lint - test - release ansible-lint: stage: lint variables: ANSIBLE_CONFIG: "$CI_PROJECT_DIR/ansible.lint.cfg" script: - ansible-lint --version - ansible-lint --offline -f codeclimate roles/ playbooks/ > ansible-lint-report.json artifacts: paths: - "ansible-lint-report.json" reports: codequality: ansible-lint-report.json when: always # Automated month-based releases release-branch: stage: release image: registry.gitlab.com/gitlab-org/release-cli variables: GIT_STRATEGY: clone GIT_DEPTH: 0 before_script: - apk add --no-cache git - export INFRA_RELEASE_VERSION="$(date +%y.%m)" - export INFRA_RELEASE_NAME="Infrastructure $INFRA_RELEASE_VERSION" - export INFRA_RELEASE_DESCRIPTION="$(printf '## Changelog\n\n' && git log --no-merges --pretty="- %s (%h)" "HEAD...$(git tag | sort -V -r | head -1)" && printf '\n\n## External Contributors\n\n' && git log --pretty="- %an%n- %cn" HEAD...$(git tag | sort -V -r | head -1) | sort | uniq | grep -vi 'saibotk' && printf "\n\n---\n*This is an automated release. See [#${CI_JOB_ID}]($CI_JOB_URL) for details.*")" script: - > release-cli create --name "$INFRA_RELEASE_NAME" --description "$INFRA_RELEASE_DESCRIPTION" --tag-name "v${INFRA_RELEASE_VERSION}" --ref $CI_COMMIT_SHA rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $INFRA_RELEASE_NOW == "true" && $CI_COMMIT_TAG == null'