GitHub Action to build and attach asset to every new release?

Viewed 605

I want to design a GitHub action that uploads a few build artefacts as assets whenever a new release is made. However, I cannot find any examples on how to do this. Note that I create release in the GitHub website. This also creates a corresponding tag.

This answer is not applicable because it creates the release from the tag. I have already created a release on the GitHub website.

1 Answers

Trigger on the event release created and upload an asset:

on:
  release:
    types: [created]

jobs:
  release:
    name: Upload Release Asset
    runs-on: ubuntu-latest
    steps:
      - name: Upload Release Asset
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ github.event.release.upload_url }} 
          asset_path: ./path/file.ext
          asset_name: AssetName
          asset_content_type: application/octet-stream

Choose the activity type in types: [created] according to what exactly you need.

The action that was performed. Can be one of:

  • published: a release, pre-release, or draft of a release is published
  • unpublished: a release or pre-release is deleted
  • created: a draft is saved, or a release or pre-release is published without previously being saved as a draft
  • edited: a release, pre-release, or draft release is edited
  • deleted: a release, pre-release, or draft release is deleted
  • prereleased: a pre-release is created
  • released: a release or draft of a release is published, or a pre-release is changed to a release

From https://docs.github.com/en/developers/webhooks-and-events/webhook-events-and-payloads#webhook-payload-object-35

Related