chore(release): 29.1.1 (#4173) #74
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is a workflow to create github release for a tag and publish the package | |
# to npm repo | |
name: release-and-publish | |
# Controls when the action will run. Triggers the workflow on push of tag | |
# request events but only tags matching the configured regex | |
on: | |
push: | |
tags: | |
# patterns to match for tag creation. Here all tags similar to v1.0 or | |
# v1.2.0 will trigger this action | |
- 'v[0-9]+.[0-9]+.[0-9]+*' | |
# A workflow run is made up of one or more jobs that can run sequentially or in | |
# parallel | |
permissions: | |
contents: read | |
jobs: | |
# For more information on setting outputs and reading them have a look at | |
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjobs_idoutputs | |
setup_variables: | |
permissions: | |
contents: none | |
runs-on: ubuntu-latest | |
outputs: | |
isLatest: ${{ steps.release_type.outputs.latest }} | |
steps: | |
- id: release_type | |
name: Identify release type | |
# For understanding how to set output read: | |
# https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-output-parameter | |
run: echo "::set-output name=latest::$LATEST" | |
env: | |
LATEST: ${{ contains(github.ref, '-next') != true && contains(github.ref, '-rc') != true }} | |
create_release: | |
permissions: | |
contents: write # for actions/create-release to create a release | |
needs: [setup_variables] | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
# Steps represent a sequence of tasks that will be executed as part of the | |
# job | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access | |
# it | |
- name: Checkout code | |
# https://github.com/marketplace/actions/checkout | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3 | |
# Runs a single command using the runners shell | |
- name: Create release for tag | |
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 | |
with: | |
tag_name: ${{ github.ref }} | |
body: Please refer to [CHANGELOG.md](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) for details. | |
draft: false | |
prerelease: ${{ needs.setup_variables.outputs.isLatest != 'true' }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
publish_to_npm: | |
needs: [setup_variables, create_release] | |
runs-on: ubuntu-latest | |
steps: | |
# https://github.com/marketplace/actions/checkout | |
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3 | |
# https://github.com/marketplace/actions/setup-node-js-environment | |
- uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 | |
with: | |
node-version: 16 | |
registry-url: https://registry.npmjs.org/ | |
- name: Check lock file | |
# runs npm install using package-lock.json and verifies | |
# if dependencies are matching with package.json or not | |
run: npm ci | |
# This will tell npm to publish your scoped package with public access | |
- name: Publish with latest tag | |
if: ${{ needs.setup_variables.outputs.isLatest == 'true' }} | |
run: npm publish --access public | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | |
- name: Publish with next tag | |
if: ${{ needs.setup_variables.outputs.isLatest != 'true' }} | |
run: npm publish --access public --tag next | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} |