Add Semantic Release to Auto Devops
Problem to solve
Semantic versioning and release notes are best practices for a release manager. Today, we cannot automatically increment versions or generate releases. This would be especially helpful as an extension of AutoDevOps Templates.
AutoDevops would benefit from using auto-releases as a part of their CICD lifecycle and generation of auto-changelogs. This would be a great getting started with GitLab releases that have a straight forward commits to master strategy that indicates.
Intended users
User experience goal
As a developer, I want my AutoDevops template to auto-increment versions and generate releases.
Proposal
Integrate Semantic Release (https://semantic-release.gitbook.io/semantic-release/recipes/recipes/gitlab-ci), into AutoDevops template.
Extend the Auto-DevOps.gitlab-ci.yml
template to include the Auto Release job by default.
stages:
- release
semantic-release:
image: node:12
stage: release
before_script:
- npm install -g semantic-release @semantic-release/gitlab @semantic-release/exec
- |
cat <<-EOF >> .releaserc.yml
---
verifyConditions:
- "@semantic-release/gitlab"
prepare: false
publish:
- "@semantic-release/gitlab"
success: false
fail: false
npmPublish: false
plugins:
- "@semantic-release/commit-analyzer"
- "@semantic-release/release-notes-generator"
- "@semantic-release/gitlab"
- - "@semantic-release/exec"
- prepareCmd: "set-version ${nextRelease.version}"
publishCmd: "publish-package"
EOF
script:
- semantic-release
only:
refs:
- master
- beta
- /^\d+.x$/
- /^\d+.\d+.x$/
# .gitlab-ci.yml
include:
template: Releases/Semantic-Release.yml
test:
script: test