Pierre Vanduynslager ed89361d7c docs: documentation improvements
**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
2018-01-05 16:05:30 -05:00

2.0 KiB

Using semantic-release with GitLab CI

Environment variables

The Authentication environment variables can be configured with Secret variables.

Node project configuration

GitLab CI supports Pipelines 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.

.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 for additional configuration options.

Note: Thesemantic-release execution command varies depending if you are using a local or global semantic-release installation.

# 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.

{
  "devDependencies": {
    "semantic-release": "^12.0.0"
  },
  "scripts": {
    "semantic-release": "semantic-release"
  }
}