110 lines
3.1 KiB
YAML
110 lines
3.1 KiB
YAML
name: Cross-Compile Binaries
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- '*'
|
|
schedule:
|
|
- cron: '0 0 * * 6'
|
|
|
|
jobs:
|
|
compile-linux:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
steps:
|
|
- name: Checkout and pull the code
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup the Go programming language
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: 'stable'
|
|
|
|
- name: Install build dependencies
|
|
run: |
|
|
mv /etc/apt/sources.list.d/microsoft-prod.list /etc/apt/sources.list.d/microsoft-prod.list.disabled
|
|
|
|
until apt-get update; do
|
|
echo -e "-----\napt-get update failed, retrying in 1s...\n-----"
|
|
sleep 1s
|
|
done
|
|
|
|
apt-get install -y \
|
|
build-essential libgl1-mesa-dev libx11-dev libxrandr-dev \
|
|
libxi-dev libxcursor-dev libxinerama-dev libglfw3-dev \
|
|
libxxf86vm-dev
|
|
|
|
- name: Compile the fyne application for native Linux
|
|
run: |
|
|
export CGO_ENABLED=1
|
|
export CC=gcc
|
|
export CXX=g++
|
|
export GOOS=linux
|
|
export GOARCH=amd64
|
|
go build -o ./pkcs-generator ./src
|
|
|
|
- name: upload the building actifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: package-linux64
|
|
path: |
|
|
./pkcs-generator
|
|
retention-days: 3
|
|
overwrite: true
|
|
|
|
compile-windows:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
steps:
|
|
- name: Checkout and pull the code
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup the Go programming language
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: 'stable'
|
|
|
|
- name: Install build dependencies
|
|
run: |
|
|
mv /etc/apt/sources.list.d/microsoft-prod.list /etc/apt/sources.list.d/microsoft-prod.list.disabled
|
|
|
|
until apt-get update; do
|
|
echo -e "-----\napt-get update failed, retrying in 1s...\n-----"
|
|
sleep 1s
|
|
done
|
|
|
|
apt-get install -y \
|
|
build-essential libgl1-mesa-dev libx11-dev libxrandr-dev \
|
|
libxi-dev libxcursor-dev libxinerama-dev libglfw3-dev \
|
|
libxxf86vm-dev gcc-mingw-w64 gcc-multilib
|
|
|
|
- name: Install go binary
|
|
run: |
|
|
go install github.com/tc-hib/go-winres@latest
|
|
env:
|
|
GOBIN: /usr/local/bin
|
|
|
|
- name: Compile the fyne application for Windows
|
|
run: |
|
|
export CGO_ENABLED=1
|
|
export GOOS=windows
|
|
export GOARCH=amd64
|
|
export CC=x86_64-w64-mingw32-gcc
|
|
export CXX=x86_64-w64-mingw32-g++
|
|
export CGO_LDFLAGS="-static-libgcc -static-libstdc++"
|
|
go-winres simply --icon icon.png --manifest gui
|
|
mv *.syso ./src
|
|
go build -o ./pkcs-generator.exe -ldflags -H=windowsgui ./src
|
|
|
|
- name: upload the building actifacts
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: package-win64
|
|
path: |
|
|
./pkcs-generator.exe
|
|
retention-days: 7
|
|
overwrite: true
|