Skip to content

Release

Release #65

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@v4
- name: Modify version number
run: |
VERSION=$(grep 'Version' FyneApp.toml | sed 's/Version = "\(.*\)"/\1/' | xargs)
DATE=$(TZ=Asia/Shanghai date +"%Y-%m-%d")
if [[ "$RUNNER_OS" == "Linux" ]]; then
sed -i "s/const Version = \"development\"/const Version = \"$VERSION\"/" main.go
sed -i "s/const EUICCDataVersion = \"unknown\"/const EUICCDataVersion = \"$DATE\"/" main.go
elif [[ "$RUNNER_OS" == "macOS" ]]; then
sed -i '' "s/const Version = \"development\"/const Version = \"$VERSION\"/" main.go
sed -i '' "s/const EUICCDataVersion = \"unknown\"/const EUICCDataVersion = \"$DATE\"/" main.go
fi
- name: Setup go
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 libgtk-3-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: |
go generate
fyne-cross windows --arch=amd64,arm64 --icon assets/icon64.png
cd fyne-cross/bin/windows-amd64
wget https://github.com/estkme-group/lpac/releases/download/v2.0.0/lpac-windows-x86_64-mingw.zip -O lpac.zip
unzip lpac.zip
rm lpac.zip
zip -r $GITHUB_WORKSPACE/EasyLPAC-windows-x86_64-with-lpac.zip ./*
cd $GITHUB_WORKSPACE/fyne-cross/bin/windows-arm64
wget https://github.com/estkme-group/lpac/releases/download/v2.0.0/lpac-windows-arm64-mingw.zip -O lpac.zip
unzip lpac.zip
rm lpac.zip
zip -r $GITHUB_WORKSPACE/EasyLPAC-windows-arm64-with-lpac.zip ./*
- name: Build for macOS
if: runner.os == 'macOS'
run: |
go install fyne.io/fyne/v2/cmd/fyne@latest
go generate
fyne package --icon assets/icon128.png --release
cd EasyLPAC.app/Contents/MacOS
wget https://github.com/estkme-group/lpac/releases/download/v2.0.0/lpac-darwin-universal.zip -O lpac.zip
unzip lpac.zip && rm lpac.zip
cd $GITHUB_WORKSPACE
zip -r EasyLPAC-macOS-x86_64-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 assets/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-x86_64-with-lpac.dmg
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: build-artifact-${{ matrix.os }}
path: |
EasyLPAC-windows-x86_64-with-lpac.zip
EasyLPAC-windows-arm64-with-lpac.zip
EasyLPAC-macOS-x86_64-with-lpac.zip
EasyLPAC-macOS-x86_64-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-windows-arm64-with-lpac.zip
EasyLPAC-macOS-x86_64-with-lpac.zip
EasyLPAC-macOS-x86_64-with-lpac.dmg