# Runs on: main only — after lints pass. # Analyses conventional commits and publishes a GitLab release + CHANGELOG. # # Required CI/CD variable: # SEMANTIC_RELEASE_TOKEN — project/personal access token with api + write_repository scope. # (CI_JOB_TOKEN does not have the permissions needed to push tags and create releases.) release: stage: release image: node:lts-alpine rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - lint:config-json - lint:apps-yaml variables: GITLAB_TOKEN: $SEMANTIC_RELEASE_TOKEN before_script: - npm install --no-save semantic-release @semantic-release/commit-analyzer @semantic-release/release-notes-generator @semantic-release/changelog @semantic-release/git @semantic-release/gitlab script: - npx semantic-release --config .cicd/.releaserc.json