Skip to content

Commit

Permalink
Create a new release Github Action
Browse files Browse the repository at this point in the history
  • Loading branch information
jeandeaual committed May 16, 2020
1 parent e71ac4e commit d874318
Showing 1 changed file with 121 additions and 0 deletions.
121 changes: 121 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: release
on:
push:
tags:
- v*
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: '^1.14'
- name: Get dependencies
run: |
# Install genisoimage to create a macOS DMG package
sudo apt install genisoimage
GO111MODULE=off go get github.com/lucor/fyne-cross/cmd/fyne-cross
- name: Set up environment
env:
IMGUR_CLIENT_ID: ${{ secrets.IMGUR_CLIENT_ID }}
run: |
# Get version from Git (latest tag without leading "v" or sha1 if no tag):
BUILD_VERSION=$(set -o pipefail; git describe --tags 2>/dev/null | sed 's/^v//' || git rev-parse HEAD)
# Get the date in RFC 3339 format (UTC)
BUILD_TIME=$(date --utc --iso-8601=seconds | sed 's/+00:00$//')
echo "::set-env name=BUILD_FLAGS::-X main.version=${BUILD_VERSION} -X main.buildTimeStr=${BUILD_TIME} -X github.com/jeandeaual/tts-deckconverter/tts/upload.imgurClientID=${IMGUR_CLIENT_ID}"
- name: Build Linux CLI
run: |
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o build-linux/tts-deckconverter -ldflags "${BUILD_FLAGS} -s -w" ./cmd/tts-deckconverter
tar -cvzf tts-deckconverter-linux-amd64.tar.gz -C build-linux tts-deckconverter
- name: Build Linux GUI
run: |
$(go env GOPATH)/bin/fyne-cross linux -debug -app-id tts-deckconverter-gui -ldflags "${BUILD_FLAGS}" -icon ./resources/icon.png -output tts-deckconverter-gui ./cmd/tts-deckconverter-gui
tar -cvzf tts-deckconverter-gui-linux-amd64.tar.gz -C fyne-cross/bin/linux-amd64 tts-deckconverter-gui
- name: Build macOS CLI
run: |
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -v -o build-darwin/tts-deckconverter -ldflags "${BUILD_FLAGS} -s -w" ./cmd/tts-deckconverter
zip -9 -j tts-deckconverter-macos-amd64.zip build-darwin/tts-deckconverter
- name: Build macOS GUI
run: |
$(go env GOPATH)/bin/fyne-cross darwin -debug -app-id tts-deckconverter-gui -ldflags "${BUILD_FLAGS}" -icon ./resources/icon.png -output tts-deckconverter-gui ./cmd/tts-deckconverter-gui
# Build the OS X DMG file
mkdir fyne-cross/dist/darwin-amd64-dmg
genisoimage -V tts-deckconverter-gui -D -R -apple -no-pad -o fyne-cross/dist/darwin-amd64-dmg/tts-deckconverter-gui-amd64.dmg fyne-cross/dist/darwin-amd64
- name: Build Windows CLI
run: |
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -v -o build-windows/tts-deckconverter.exe -ldflags "${BUILD_FLAGS} -s -w" ./cmd/tts-deckconverter
zip -9 -j tts-deckconverter-windows-amd64.zip build-windows/tts-deckconverter.exe
- name: Build Windows GUI
run: |
$(go env GOPATH)/bin/fyne-cross windows -debug -app-id tts-deckconverter-gui -ldflags "${BUILD_FLAGS}" -icon ./resources/icon.png -output tts-deckconverter-gui.exe ./cmd/tts-deckconverter-gui
zip -9 -j tts-deckconverter-gui-windows-amd64.zip fyne-cross/bin/windows-amd64/tts-deckconverter-gui.exe
- name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: true
prerelease: false
- uses: olegtarasov/get-tag@v2
id: tag_name
- name: Upload Linux CLI release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./tts-deckconverter-linux-amd64.tar.gz
asset_name: tts-deckconverter-linux-amd64-${{ steps.tag_name.outputs.tag }}.tar.gz
asset_content_type: application/gzip
- name: Upload Linux GUI release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./tts-deckconverter-gui-linux-amd64.tar.gz
asset_name: tts-deckconverter-gui-linux-amd64-${{ steps.tag_name.outputs.tag }}.tar.gz
asset_content_type: application/gzip
- name: Upload macOS CLI release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./tts-deckconverter-macos-amd64.zip
asset_name: tts-deckconverter-macos-amd64-${{ steps.tag_name.outputs.tag }}.zip
asset_content_type: application/zip
- name: Upload macOS GUI release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./fyne-cross/dist/darwin-amd64-dmg/tts-deckconverter-gui-amd64.dmg
asset_name: tts-deckconverter-gui-macos-amd64-${{ steps.tag_name.outputs.tag }}.dmg
asset_content_type: application/octet-stream
- name: Upload Windows CLI release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./tts-deckconverter-windows-amd64.zip
asset_name: tts-deckconverter-windows-amd64-${{ steps.tag_name.outputs.tag }}.zip
asset_content_type: application/zip
- name: Upload Windows GUI release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./tts-deckconverter-gui-windows-amd64.zip
asset_name: tts-deckconverter-gui-windows-amd64-${{ steps.tag_name.outputs.tag }}.zip
asset_content_type: application/zip

0 comments on commit d874318

Please sign in to comment.