32

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?

2 Answers 2

60

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"
Sign up to request clarification or add additional context in comments.

3 Comments

It looks pretty sophisticated. I will check it tomorrow and mark it as answer if it works.
Isn't published also fired for drafts and only created only used for non-draft releases?
Thank you @scthi, dumping the GitHub context helped!
23

You can get tag version using ${{ github.event.release.tag_name }}.

1 Comment

Here's the reference with all information you can get from the webhooks that trigger GH Actions: docs.github.com/en/developers/webhooks-and-events/webhooks/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.