Skip to content

Instantly share code, notes, and snippets.

@dcaponi
Created June 7, 2020 21:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dcaponi/f0a614bb2257bda7acf060e1b3f227b9 to your computer and use it in GitHub Desktop.
Save dcaponi/f0a614bb2257bda7acf060e1b3f227b9 to your computer and use it in GitHub Desktop.
Multi-Platform Go Ship with GH Action
on:
push:
tags:
- '*'
name: Release
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Unshallow
run: git fetch --prune --unshallow
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
- name: Build
run: make ship # Add a script that generates builds for the platforms you need to support
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
- name: Upload Darwin-amd64 Asset # Upload mac build to release
id: upload-Darwin-amd64-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/darwin-amd64.tar.gz
asset_name: dawrin-amd64.tar.gz
asset_content_type: application/x-gzip
- name: Upload Linux-amd64 Asset # Upload linux build to release
id: upload-Linux-amd64-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/linux-amd64.tar.gz
asset_name: linux-amd64.tar.gz
asset_content_type: application/x-gzip
- name: Upload Windows-amd64 Asset # Upload windows build to release
id: upload-Windows-amd64-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/windows-amd64.zip
asset_name: windows-amd64.zip
asset_content_type: application/zip
- name: Upload Windows-386 Asset # Upload windows 386 build to release
id: upload-Windows-386-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/windows-386.zip
asset_name: windows-386.zip
asset_content_type: application/zip
- name: Upload Linux-386 Asset # Upload linux 386 build to release
id: upload-Linux-386-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/linux-386.tar.gz
asset_name: linux-386.tar.gz
asset_content_type: application/x-gzip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment