{ "name": "semantic-release", "description": "Automate your versioning and release management with [semantic-release](https://github.com/semantic-release/semantic-release)", "template_path": "templates/gitlab-ci-semrel.yml", "kind": "publish", "variables": [ { "name": "SEMREL_IMAGE", "description": "The Docker image used to run semantic-release", "default": "registry.hub.docker.com/library/node:latest" }, { "name": "SEMREL_VERSION", "description": "The [semantic-release](https://www.npmjs.com/package/semantic-release) version to use", "default": "latest", "advanced": true }, { "name": "SEMREL_EXEC_VERSION", "description": "The [@semantic-release/exec](https://www.npmjs.com/package/@semantic-release/exec) version to use", "default": "latest", "advanced": true }, { "name": "GITLAB_TOKEN", "description": "A GitLab [project access token](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html) or [personal access token](https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html) with `api`, `read_repository` and `write repository` scopes.", "mandatory": true, "secret": true }, { "name": "SEMREL_CONFIG_DIR", "description": "directory containing your [semantic-release configuration](https://semantic-release.gitbook.io/semantic-release/usage/configuration#configuration-file)", "default": ".", "advanced": true }, { "name": "SEMREL_TAG_FORMAT", "description": "For generated `.releaserc` file only. [tagFormat semantic-release option](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#tagformat)e. :warning: don't forget to double the `$` character so it is not interpreted by GitLab.", "default": "$${version}", "advanced": true }, { "name": "SEMREL_REQUIRED_PLUGINS_FILE", "description": "Full path to `semrel-required-plugins.txt` file _(relative to `$CI_PROJECT_DIR`)_", "default": "semrel-required-plugins.txt", "advanced": true } ], "features": [ { "id": "semantic-release", "name": "semantic-release", "description": "Performs a semantic release.", "disable_with": "SEMREL_RELEASE_DISABLED", "variables": [ { "name": "SEMREL_CHANGELOG_ENABLED", "description": "Add the [@semantic-release/changelog](https://github.com/semantic-release/changelog) plugin which will commit a changelog file in the repository.", "type": "boolean" }, { "name": "SEMREL_CHANGELOG_FILE", "description": "[changelogFile @semantic-release/changelog option](https://github.com/semantic-release/changelog#options).", "default": "CHANGELOG.md", "advanced": true }, { "name": "SEMREL_CHANGELOG_TITLE", "description": "[changelogTitle @semantic-release/changelog option](https://github.com/semantic-release/changelog#options). You might want to use markdown format (for example `# MyApp Changelog`).", "advanced": true }, { "name": "SEMREL_DRY_RUN", "description": "For generated `.releaserc` file only. Activate the [dryRun semantic-release option](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#dryrun) if present.", "type": "boolean", "advanced": true }, { "name": "SEMREL_AUTO_RELEASE_ENABLED", "description": "When set the job start automatically. When not set (default), the job is manual.", "type": "boolean" }, { "name": "SEMREL_HOOKS_DIR", "description": "Hook scripts folder.", "default": ".", "advanced": true }, { "name": "SEMREL_RELEASE_DISABLED", "description": "Disable this job.", "advanced": true }, { "name": "SEMREL_GPG_SIGNKEY", "description": "Path to the GPG signkey exported with `gpg --armor --export-secret-key`.", "secret": true, "advanced": true } ] }, { "id": "semantic-release-info", "name": "semantic-release-info", "description": "Run `semantic-release` dry run to save next release version information as dotenv artifact and make them available in next pipeline stages", "variables": [ { "name": "SEMREL_INFO_ON", "description": "Define on which branch(es) the job shall be run", "type": "enum", "values": ["", "prod", "protected", "all"], "mandatory": true } ] } ] }