Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
save

GitHub Action

github-action-publish-binaries

release-0.15

github-action-publish-binaries

save

github-action-publish-binaries

Publish binaries when new releases are made

Installation

Copy and paste the following snippet into your .yml file.

              

- name: github-action-publish-binaries

uses: skx/[email protected]

Learn more about this action in skx/github-action-publish-binaries

Choose a version

GitHub Action for Uploading Release Artifacts

This repository contains a simple GitHub Action implementation which allows you to attach binaries to a new (github) release of your repository.

Enabling the action

There are two steps required to use this action:

  • Enable the action inside your repository.
    • This will mean creating a file .github/workflows/release.yml which is where the action is invoked.
    • You'll specify a pattern to describe which binary-artifacts are uploaded.
  • Ensure your binary artifacts are generated.
    • Ideally you should do this in your workflow using another action.

Sample Configuration

The following configuration file uses this action, along with the github-action-build action to generate the artifacts for a project, then attach them to a release.

on:
  release:
    types: [created]
name: Handle Release
jobs:
  generate:
    name: Create release-artifacts
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the repository
        uses: actions/checkout@master
      - name: Generate the artifacts
        uses: skx/github-action-build@master
      - name: Upload the artifacts
        uses: skx/github-action-publish-binaries@master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          args: 'example-*'

This is the preferred approach because it uses a pair of distinct actions, each having one job:

Advanced Configuration

This action is primarily intended to be invoked upon a release-event, which means that Github itself will create a new release, and the action will upload the specified artifacts to that release.

However it might be that you wish to create a new release within an action, then modify it by populating the content and adding artifacts. This is possible, because we allow you to specify the ID of the release to which your artifacts should be associated.

You'll want to configure it using something like this:

  upload_artifacts:
    name: Upload Artifacts
    needs: [create_release]
    runs-on: ubuntu-latest
    steps:
      - name: Upload the artifacts
        uses: skx/[email protected]
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          releaseId: ${{ needs.create_release.outputs.id }}
          args: '*.bin'

Here we're explicitly passing the releaseId variable, such that the specified release ID will be used.

GITHUB_TOKEN

Your workflow configuration file, named .github/workflows/release.yml, will contain a reference to secrets.GITHUB_TOKEN, however you do not need to generate that, or update your project settings in any way!

You can inject secrets into workflows, defining them in the project settings, and referring to them by name, but the GITHUB_TOKEN value is special and it is handled transparently, requiring no manual setup.