**Refactor and clarify the documentation in `README.md`** - Add Highlights - Add a Table of contents - Clarify the way semantic-release works - Clarify relationship with the CI environments - Describe local install for Node projects (with a `package.json`) and global install for non-JavaScript projects - Explain CI general configuration (environment variables and a run after all jobs are successful) - Clarify configuration (via config file or CLI arguments) - Clarify plugin roles and configuration - Add doc for shareable configuration - Add recipes - Add resources (Videos, articles, tutorials) - Add a Support section - Add a Team section **Add the following FAQs** - How can I use a npm build script that requires the `package.json`’s version ? - Can I use Semantic-release with Yarn? - Can I use Semantic-release to publish non-JavaScript packages? - Can I use Semantic-release with any CI service? - Can I use Semantic-release with any GitLab? - Can I use Semantic-release with any Git hosted environment? - Can I skip the release to the npm registry? - Can I use .npmrc options? - How can I set the access level of the published npm package? - Can I use Semantic-release to publish a package on Artifactory? - Can I set the initial release version of my package to 0.0.1? - Why does semantic-release require Node version >= 8? **Clarify Nove 8 requirement and solutions** - Add Node version requirement explanation and solutions - [X] Display a link to the documentation when running on Node < 8 version **Add recipes** - Travis - GitLab CI - Travis with build stages - To be done in #573 - CircleCI workflows - To be done in #573
72 lines
2.0 KiB
Markdown
72 lines
2.0 KiB
Markdown
# Using semantic-release with [GitLab CI](https://about.gitlab.com/features/gitlab-ci-cd)
|
|
|
|
## Environment variables
|
|
|
|
The [Authentication](../../README.md#authentication) environment variables can be configured with [Secret variables](https://docs.gitlab.com/ce/ci/variables/README.html#secret-variables).
|
|
|
|
## Node project configuration
|
|
|
|
GitLab CI supports [Pipelines](https://docs.gitlab.com/ee/ci/pipelines.html) allowing to test on multiple Node versions and publishing a release only when all test pass.
|
|
|
|
**Note**: The publish pipeline must run a [Node >= 8 version](../../README.md#why-does-semantic-release-require-node-version--8).
|
|
|
|
### `.gitlab-ci.yml` configuration for Node projects
|
|
|
|
This example is a minimal configuration for semantic-release with a build running Node 4, 6 and 8 on Linux. See [GitLab CI - Configuration of your jobs with .gitlab-ci.yml](https://docs.gitlab.com/ee/ci/yaml/README.html) for additional configuration options.
|
|
|
|
**Note**: The`semantic-release` execution command varies depending if you are using a [local](../../README.md#local-installation) or [global](../../README.md#global-installation) semantic-release installation.
|
|
|
|
```yaml
|
|
# The release pipeline will run only if all jobs in the test pipeline are successful
|
|
stages:
|
|
- test
|
|
- release
|
|
|
|
before_script:
|
|
- npm install
|
|
|
|
node:4:
|
|
image: node:4
|
|
stage: test
|
|
script:
|
|
- npm test
|
|
|
|
node:6:
|
|
image: node:6
|
|
stage: test
|
|
script:
|
|
- npm test
|
|
|
|
node:8:
|
|
image: node:8
|
|
stage: test
|
|
script:
|
|
- npm test
|
|
|
|
publish:
|
|
image: node:8
|
|
stage: release
|
|
script:
|
|
# Only for a local semantic-release installation
|
|
- npm run semantic-release
|
|
|
|
# Only for a global semantic-release installation
|
|
- npm install semantic-release
|
|
- semantic-release
|
|
```
|
|
|
|
### `package.json` configuration
|
|
|
|
A `package.json` is required only for [local semantic-release installations](../../README.md#local-installation).
|
|
|
|
```json
|
|
{
|
|
"devDependencies": {
|
|
"semantic-release": "^12.0.0"
|
|
},
|
|
"scripts": {
|
|
"semantic-release": "semantic-release"
|
|
}
|
|
}
|
|
```
|