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 action is centrally managed in https://github.com/asyncapi/.github/ | |
# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo | |
# It does magic only if there is package.json file in the root of the project | |
name: Version bump - if Node.js project | |
on: | |
release: | |
types: | |
- published | |
jobs: | |
version_bump: | |
name: Generate assets and bump NodeJS | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
# target branch of release. More info https://docs.github.com/en/rest/reference/repos#releases | |
# in case release is created from release branch then we need to checkout from given branch | |
# if @semantic-release/github is used to publish, the minimum version is 7.2.0 for proper working | |
ref: ${{ github.event.release.target_commitish }} | |
- name: Check if Node.js project and has package.json | |
id: packagejson | |
run: test -e ./package.json && echo "exists=true" >> $GITHUB_OUTPUT || echo "exists=false" >> $GITHUB_OUTPUT | |
- if: steps.packagejson.outputs.exists == 'true' | |
name: Check package-lock version | |
uses: asyncapi/.github/.github/actions/get-node-version-from-package-lock@master | |
id: lockversion | |
- if: steps.packagejson.outputs.exists == 'true' | |
name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "${{ steps.lockversion.outputs.version }}" | |
cache: 'npm' | |
cache-dependency-path: '**/package-lock.json' | |
- if: steps.packagejson.outputs.exists == 'true' | |
name: Install dependencies | |
run: npm ci | |
- if: steps.packagejson.outputs.exists == 'true' | |
name: Assets generation | |
run: npm run generate:assets --if-present | |
- if: steps.packagejson.outputs.exists == 'true' | |
name: Bump version in package.json | |
# There is no need to substract "v" from the tag as version script handles it | |
# When adding "bump:version" script in package.json, make sure no tags are added by default (--no-git-tag-version) as they are already added by release workflow | |
# When adding "bump:version" script in package.json, make sure --allow-same-version is set in case someone forgot and updated package.json manually and we want to avoide this action to fail and raise confusion | |
run: VERSION=${{github.event.release.tag_name}} npm run bump:version | |
- if: steps.packagejson.outputs.exists == 'true' | |
name: Create Pull Request with updated asset files including package.json | |
uses: peter-evans/create-pull-request@38e0b6e68b4c852a5500a94740f0e535e0d7ba54 # use 4.2.4 https://github.com/peter-evans/create-pull-request/releases/tag/v4.2.4 | |
with: | |
token: ${{ secrets.GH_TOKEN }} | |
commit-message: 'chore(release): ${{github.event.release.tag_name}}' | |
committer: asyncapi-bot <[email protected]> | |
author: asyncapi-bot <[email protected]> | |
title: 'chore(release): ${{github.event.release.tag_name}}' | |
body: 'Version bump in package.json for release [${{github.event.release.tag_name}}](${{github.event.release.html_url}})' | |
branch: version-bump/${{github.event.release.tag_name}} | |
- if: failure() # Only, on failure, send a message on the 94_bot-failing-ci slack channel | |
name: Report workflow run status to Slack | |
uses: 8398a7/action-slack@v3 | |
with: | |
status: ${{ job.status }} | |
fields: repo,action,workflow | |
text: 'Unable to bump the version in package.json after the release' | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CI_FAIL_NOTIFY }} |