--- # https://github.com/semantic-release/semantic-release#commit-message-format # https://levelup.gitconnected.com/semantic-versioning-and-release-automation-on-gitlab-9ba16af0c21 variables: BADGE_semantic_release: "version-${CI_COMMIT_TAG}-informational" BADGE_semantic_release_URL: "${CI_PROJECT_URL}/tags/${CI_COMMIT_TAG}" semantic-release: image: registry.gitlab.com/just-ci/images/node:latest stage: .post variables: EXTRA_ARGS: "" script: - | if ! test -f ".releaserc"; then echo "[!] No .releaserc file found in the root of your repository. Using default semantic-release configuration: https://gitlab.com/just-ci/utils/-/raw/main/semantic-release/gitlab-default.json" echo "[-] See https://semantic-release.gitbook.io/semantic-release/usage/configuration on how to configure semantic-release." curl -sSLf https://gitlab.com/just-ci/utils/-/raw/main/semantic-release/gitlab-default.json > .releaserc fi # Check if .releaserc has a list of assets we can parse and if tbump bumped any files. - | if jq -e '.plugins[3][1].assets[0]' .releaserc >/dev/null 2>&1 && [ ! -z ${BUMPED_FILES} ]; then for FILE in ${BUMPED_FILES}; do if ! jq -e --arg FILE "$FILE" '.plugins[3][1].assets | index($FILE)' .releaserc > /dev/null; then echo "[!] '${FILE}' has changed, but isn't listed in the assets in '.releaserc'. Ensure it is matched, else the version bumped files will not be pushed to your repo." fi done fi - npm install -g semantic-release @semantic-release/gitlab @semantic-release/git @semantic-release/changelog @semantic-release/exec - semantic-release ${EXTRA_ARGS} only: variables: - $GL_TOKEN