Skip to content

Release

Release #131

Workflow file for this run

name: Release
on:
push:
tags:
- '*'
workflow_dispatch:
permissions:
contents: write
jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-latest
label: 'ubuntu'
- os: windows-latest
label: 'windows'
- os: macos-latest
label: 'macos-arm'
- os: macos-13
label: 'macos-x86'
runs-on: ${{ matrix.os }}
env:
LPAC_VERSION: v2.2.0+0b81e8a
LPAC_VERSION_IN_URL: v2.2.0%2B0b81e8a
LPAC_REPO: https://github.com/creamlike1024/lpac
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" == "macOS" ]]; then
sed -i '' "s/const Version = \"development\"/const Version = \"$VERSION\"/" main.go
sed -i '' "s/const EUICCDataVersion = \"unknown\"/const EUICCDataVersion = \"$DATE\"/" main.go
else
sed -i "s/const Version = \"development\"/const Version = \"$VERSION\"/" main.go
sed -i "s/const EUICCDataVersion = \"unknown\"/const EUICCDataVersion = \"$DATE\"/" main.go
fi
shell: bash
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: '1.20'
- 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
- name: Setup msys2
if: runner.os == 'Windows'
uses: msys2/setup-msys2@v2
with:
install: git mingw-w64-x86_64-toolchain wget zip unzip
path-type: inherit
- name: Build for Linux
if: runner.os == 'Linux'
run: |
go install fyne.io/fyne/v2/cmd/fyne@latest
go generate
go build -ldflags="-s -w"
chmod +x EasyLPAC
wget $LPAC_REPO/archive/refs/tags/$LPAC_VERSION_IN_URL.tar.gz -O lpac-$LPAC_VERSION-src.tar.gz
wget $LPAC_REPO/archive/refs/tags/$LPAC_VERSION_IN_URL.zip -O lpac-$LPAC_VERSION-src.zip
tar zcf EasyLPAC-linux-x86_64.tar.gz EasyLPAC lpac-$LPAC_VERSION-src.tar.gz LICENSE
- name: Build for Windows
if: runner.os == 'Windows'
run: |
go install fyne.io/fyne/v2/cmd/fyne@latest
go generate
fyne package --icon assets/icon64.png
mkdir easylpac && cp EasyLPAC.exe easylpac && cd easylpac
wget $LPAC_REPO/releases/download/$LPAC_VERSION_IN_URL/lpac-windows-x86_64-mingw.zip -O lpac.zip
unzip lpac.zip && rm lpac.zip
rm LICENSE* *.md
wget $LPAC_REPO/archive/refs/tags/$LPAC_VERSION_IN_URL.zip -O lpac-$LPAC_VERSION-src.zip
wget $LPAC_REPO/raw/main/src/LICENSE -O LICENSE-lpac
cp $GITHUB_WORKSPACE/LICENSE ./
zip -r $GITHUB_WORKSPACE/EasyLPAC-windows-x86_64-with-lpac.zip ./*
shell: msys2 {0}
- name: Build for macOS ARM
if: matrix.label == 'macos-arm'
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 $LPAC_REPO/releases/download/$LPAC_VERSION_IN_URL/lpac-darwin-universal.zip -O lpac.zip
unzip lpac.zip && rm lpac.zip
cd $GITHUB_WORKSPACE
wget $LPAC_REPO/archive/refs/tags/$LPAC_VERSION_IN_URL.zip -O lpac-$LPAC_VERSION-src.zip
wget $LPAC_REPO/raw/main/src/LICENSE -O LICENSE-lpac
zip -r EasyLPAC-macOS-arm64-with-lpac.zip EasyLPAC.app lpac-$LPAC_VERSION-src.zip LICENSE*
- name: Build for macOS x86
if: matrix.label == 'macos-x86'
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 $LPAC_REPO/releases/download/$LPAC_VERSION_IN_URL/lpac-darwin-universal.zip -O lpac.zip
unzip lpac.zip && rm lpac.zip
cd $GITHUB_WORKSPACE
wget $LPAC_REPO/archive/refs/tags/$LPAC_VERSION_IN_URL.zip -O lpac-$LPAC_VERSION-src.zip
wget $LPAC_REPO/raw/main/src/LICENSE -O LICENSE-lpac
zip -r EasyLPAC-macOS-x86_64-with-lpac.zip EasyLPAC.app lpac-$LPAC_VERSION-src.zip LICENSE*
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact-${{ matrix.label }}
path: |
EasyLPAC-windows-x86_64-with-lpac.zip
EasyLPAC-macOS-arm64-with-lpac.zip
EasyLPAC-macOS-x86_64-with-lpac.zip
EasyLPAC-linux-x86_64.tar.gz
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
EasyLPAC-windows-x86_64-with-lpac.zip
EasyLPAC-macOS-arm64-with-lpac.zip
EasyLPAC-macOS-x86_64-with-lpac.zip
EasyLPAC-linux-x86_64.tar.gz