Skip to content

Latest commit

 

History

History
51 lines (41 loc) · 2.28 KB

circleci-workflows.md

File metadata and controls

51 lines (41 loc) · 2.28 KB

Using semantic-release with CircleCI 2.0 workflows

Environment variables

The Authentication environment variables can be configured in CircleCi Project Settings..

Alternatively, the default NPM_TOKEN and GH_TOKEN can be easily setup with semantic-release-cli.

Multiple Node jobs configuration

.circleci/config.yml configuration for multiple Node jobs

This example is a minimal configuration for semantic-release with tests running against Node 16 and 14. See CircleCI documentation for additional configuration options.

In this example, the circleci/node orb is imported (Which makes some node operations easier), then a release job is defined which will run semantic-release.

To run our release job, we have created a workflow named test_and_release which will run two jobs, node/test, which comes from the node orb and will test our application, and our release job. Here, we are actually making use of matrix jobs so that our single node/test job will actually be executed twice, once for Node version 16, and once for version 14. Finally, we call our release job with a requires parameter so that release will run against the latest LTS version of node, only after node/test has successfully tested against v14 and v16.

version: 2.1
orbs:
  node: circleci/[email protected]
jobs:
  release:
    executor: node/default
    steps:
      - checkout
      - node/install
          lts: true
      - node/install-packages # Install and automatically cache packages
      # Run optional required steps before releasing
      # - run: npm run build-script
      - run: npx semantic-release

workflows:
  test_and_release:
    # Run the test jobs first, then the release only when all the test jobs are successful
    jobs:
      - node/test:
          matrix:
            parameters:
              version:
                - 16.1.0
                - 14.17.0
      - release:
          requires:
            - node/test