Skip to content

Release

Release #10

Workflow file for this run

name: Release
on:
push:
tags:
- '*'
workflow_dispatch:
permissions:
contents: write
jobs:
build:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repo
uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '>=1.21.0'
- name: Setup Docker
if: runner.os == 'Linux'
uses: docker-practice/actions-setup-docker@master
- name: Setup toolchain
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y build-essential libgl1-mesa-dev xorg-dev
go install fyne.io/fyne/v2/cmd/fyne@latest
go install github.com/fyne-io/fyne-cross@latest
- name: Build for Linux
if: runner.os == 'Linux'
run: |
go build -ldflags="-s -w"
mkdir lpac
chmod +x EasyLPAC
tar zcf EasyLPAC-linux-x86_64.tar.gz EasyLPAC lpac
- name: Build for Windows
if: runner.os == 'Linux'
run: |
fyne-cross windows -icon asset/icon2.png
cd fyne-cross/bin/windows-amd64
mkdir lpac
wget https://github.com/creamlike1024/lpac/releases/download/v2024.1.3/lpac-windows-x86_64-cygwin.zip -O lpac.zip
unzip lpac.zip -d lpac
rm lpac.zip
zip -r $GITHUB_WORKSPACE/EasyLPAC-windows-x86_64-with-lpac.zip ./*
- name: Build for macOS
if: runner.os == 'macOS'
run: |
go install fyne.io/fyne/v2/cmd/fyne@latest
fyne package -icon asset/icon.png
cd EasyLPAC.app/Contents/MacOS
mkdir lpac
wget https://github.com/creamlike1024/lpac/releases/download/v2024.1.3/lpac-macos-universal.zip -O lpac.zip
unzip lpac.zip -d lpac && rm lpac.zip
chmod +x lpac/*
cd $GITHUB_WORKSPACE
zip -r EasyLPAC-macOS-universal-with-lpac.zip EasyLPAC.app
mkdir dmg && cp -r EasyLPAC.app dmg
hdiutil create -volname "EasyLPAC" -srcfolder dmg -ov -format UDRW EasyLPAC.dmg
hdiutil attach EasyLPAC.dmg
cp asset/icon.icns /Volumes/EasyLPAC/.VolumeIcon.icns
SetFile -c icnC /Volumes/EasyLPAC/.VolumeIcon.icns
SetFile -a C /Volumes/EasyLPAC
hdiutil detach /Volumes/EasyLPAC
hdiutil convert EasyLPAC.dmg -format UDZO -o EasyLPAC-macOS-universal-with-lpac.dmg
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: |
EasyLPAC-windows-x86_64-with-lpac.zip
EasyLPAC-linux-x86_64.tar.gz
EasyLPAC-macOS-universal-with-lpac.zip
EasyLPAC-macOS-universal-with-lpac.dmg
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
EasyLPAC-windows-x86_64-with-lpac.zip
EasyLPAC-linux-x86_64.tar.gz
EasyLPAC-macOS-universal-with-lpac.zip
EasyLPAC-macOS-universal-with-lpac.dmg