Search code examples
githubversionpipelinegithub-actions

How to use Github Release Version Number in Github Action


I have created a Github repo that has got an action to build the npm package and publish it to npmjs.com. The trigger for my action is the creation of a new release in Github. When creating the new release, Github is asking me for a version number. I would love to use this version number in the Action and provide it to the yarn publish command.

My ci-file looks like this (i stripped some parts that are not important here):

name: Deploy npm package

on:
  release:
    types: [created]

jobs:
  publish-npm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions/setup-node@v1
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org/
      - run: yarn install
      - run: yarn build
      - run: yarn publish --new-version ${...}
        env:a
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}

Is there an environmental variable that contains the version number from the release?


Solution

  • It should be ${{ github.event.release.tag_name }}. The structure of a release can be found here: https://developer.github.com/v3/repos/releases/#get-a-single-release

    I'd also suggest to use

    on:
      release:
        types: [published]
    

    instead of created to avoid putting something to npm for draft releases. See: https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows#release-event-release

    Hint:

    To debug the event you can use:

    jobs:
      debug:
        name: Debug
        runs-on: ubuntu-latest
        steps:
          - name: Dump env
            run: env | sort
          - name: Dump GitHub context
            env:
              GITHUB_CONTEXT: ${{ toJson(github) }}
            run: echo "$GITHUB_CONTEXT"