All Projects → skx → github-action-publish-binaries

skx / github-action-publish-binaries

Licence: other
Publish binaries when new releases are made.

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to github-action-publish-binaries

attribution
Generate changelogs from commit tags and shortlogs
Stars: ✭ 20 (-83.74%)
Mutual labels:  release
action-dynamic-readme
~ Dynamic ReadME Generator ~
Stars: ✭ 29 (-76.42%)
Mutual labels:  github-action
action-github-workflow-sync
Github Action To Sync Github Action's Workflow Files Across Repositories
Stars: ✭ 51 (-58.54%)
Mutual labels:  github-action
github-contribution-graph-action
🙈 This GitHub action will automatically push empty commits to one of your repositories.
Stars: ✭ 42 (-65.85%)
Mutual labels:  github-action
action-setup-kube-tools
Github Action that setup Kubernetes tools (kubectl, kustomize, helm, kubeconform, conftest, yq, rancher, tilt, skaffold) very fast and cache them on the runner. Please [✩Star] if you're using it!
Stars: ✭ 45 (-63.41%)
Mutual labels:  github-action
tectonic-action
Compile Tex files easily
Stars: ✭ 77 (-37.4%)
Mutual labels:  github-action
release-changelog-builder-action
A GitHub action that builds your release notes / changelog fast, easy and exactly the way you want.
Stars: ✭ 515 (+318.7%)
Mutual labels:  release
wisdom
🎁 Tool for publishing releases to github and npm
Stars: ✭ 16 (-86.99%)
Mutual labels:  release
sentry-releases-action
A GitHub action that creates releases for Sentry.io.
Stars: ✭ 38 (-69.11%)
Mutual labels:  github-action
restrict-cursing-action
Github Action to prevent cursing and bad language in issues and pull requests
Stars: ✭ 20 (-83.74%)
Mutual labels:  github-action
UWPGmaps.SDK
Unofficial Google Map SDK for Universal Windows Platform (UWP)
Stars: ✭ 16 (-86.99%)
Mutual labels:  release
jreleaser
🚀 Release projects quickly and easily with JReleaser
Stars: ✭ 736 (+498.37%)
Mutual labels:  release
Rocket
Define your release steps 🚀
Stars: ✭ 99 (-19.51%)
Mutual labels:  release
action-devcard
GitHub Action to download the devcard from https://daily.dev
Stars: ✭ 59 (-52.03%)
Mutual labels:  github-action
recent-activity
Add your recent activity to your profile readme!
Stars: ✭ 87 (-29.27%)
Mutual labels:  github-action
dont-crack
semantic-release plugin checking if the new semantic release is breaking dependent projects
Stars: ✭ 14 (-88.62%)
Mutual labels:  release
Synergy-Binaries
Download the latest stable Synergy binaries.
Stars: ✭ 671 (+445.53%)
Mutual labels:  binaries
semantic-release-slack-bot
📦 🚀 A slack bot for semantic-release notifying release statuses
Stars: ✭ 92 (-25.2%)
Mutual labels:  release
flutter auth buttons
Auth Buttons is a flutter widget library, include buttons for authenticating with the most popular social networks.
Stars: ✭ 23 (-81.3%)
Mutual labels:  release
clang-format-action
GitHub Action for clang-format checking
Stars: ✭ 48 (-60.98%)
Mutual labels:  github-action

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 as it is automatically created. You will however need to update your repository settings under Actions -> General to give the GITHUB_TOKEN write access to upload binaries to the release, without write access you will get a 403 response error.

image

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].