**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
7.0 KiB
Using semantic-release with Travis CI
Environment variables
The Authentication environment variables can be configured in Travis Repository Settings or with the travis env set CLI.
Alternatively, the default NPM_TOKEN
and GH_TOKEN
can be easily setup with semantic-release-cli.
Single Node job configuration
For projects that require to be tested only with a single Node version on one Operating System.
Note: Node 8 is the minimal version required.
.travis.yml
configuration for single Node job
This example is a minimal configuration for semantic-release with a build running Node 8 on Linux. See Travis - Customizing the Build for additional configuration options.
It's recommended to run the semantic-release
command in the Travis script
step so if an error happen the build will fail and Travis will send a notification.
Note: Thesemantic-release
execution command varies depending if you are using a local or global semantic-release installation.
language: node_js
node_js: 8
script:
# Run tests
- npm run test
# Only for a local semantic-release installation
- npm run semantic-release
# Only for a global semantic-release installation
- npm install -g semantic-release
- semantic-release
package.json
configuration for single Node job
A package.json
is required only for local semantic-release installations.
{
"devDependencies": {
"semantic-release": "^11.0.0"
},
"scripts": {
"semantic-release": "semantic-release"
}
}
Multiple Node jobs configuration
For projects that require to be tested with multiple Node versions and/or on multiple Operating Systems.
Note: At least one job must run a Node >= 8 version.
.travis.yml
configuration for multiple Node jobs
This example is a minimal configuration for semantic-release with a build running Node 4, 6 and 8 on Linux and OSX. See Travis - Customizing the Build for additional configuration options.
This example uses travis-deploy-once
in order to command Run semantic-release
only after all tests succeeded. Alternatively you can use Travis CI Build Stages recipe.
It's recommended to run the semantic-release
command in the Travis script
step so if an error happen the build will fail and Travis will send a notification.
Note: Thesemantic-release
execution command varies depending if you are using a local or global semantic-release installation.
language: node_js
node_js:
- 8
- 6
- 4
os:
- linux
- osx
script:
# Run tests
- npm run test
# Only for a local semantic-release installation
- npm run travis-deploy-once "npm run semantic-release"
# Only for a global semantic-release installation
- npm install -g travis-deploy-once semantic-release
- travis-deploy-once "semantic-release"
Note: See the travis-deploy-once
pro
and travis-url
options for using with Travis Pro and Travis Enterprise.
package.json
configuration for multiple Node jobs
A package.json
is required only for local semantic-release installations.
{
"devDependencies": {
"semantic-release": "^12.0.0",
"travis-deploy-once": "^4.0.0"
},
"scripts": {
"semantic-release": "semantic-release",
"travis-deploy-once": "travis-deploy-once"
}
}
Non-JavaScript projects configuration
For projects that require to be tested with one or multiple version of a Non-JavaScript language, optionally on multiple Operating Systems.
This recipe cover the Travis specifics only. See Non JavaScript projects recipe for more information on the semantic-release configuration.
.travis.yml
configuration for non-JavaScript projects
This example is a minimal configuration for semantic-release with a build running Go 1.6 and 1.7 on Linux and OSX. See Travis - Customizing the Build for additional configuration options.
This example uses travis-deploy-once
in order to run semantic-release
only after all tests succeeded. Alternatively you can use Travis CI Build Stages recipe.
It's recommended to run the semantic-release
command in the Travis script
step so if an error happen the build will fail and Travis will send a notification.
language: go
go:
- 1.6
- 1.7
os:
- linux
- osx
script:
# Run tests
- go test -v ./...
# Use nvm to install and use the Node LTS version (nvm is installed on Travis images)
- nvm install lts/*
# Install travis-deploy-once and semantic-release
- npm install -g travis-deploy-once semantic-release
# Run semantic-release only on job, after all other are successful
- travis-deploy-once "semantic-release"
Note: See the travis-deploy-once
pro
and travis-url
options for using with Travis Pro and Travis Enterprise.