automate nsis compile #11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Cross compile for Windows | |
on: | |
- push | |
- pull_request | |
jobs: | |
build: | |
name: build | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
contents: write | |
attestations: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up MinGW | |
run: | | |
sudo apt update | |
sudo apt install -y gcc-mingw-w64-i686-win32 nsis nsis-common | |
- name: Load Pidgin from cache | |
id: pidgin-cache | |
uses: actions/cache@v4 | |
with: | |
path: pidgin | |
key: pidgin-2.14.1 | |
- name: Download Pidgin | |
if: steps.pidgin-cache.outputs.cache-hit != 'true' | |
run: | | |
curl --http1.1 -L https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.1/pidgin-2.14.1.tar.bz2/download -o pidgin.tar.bz2 | |
tar -xf pidgin.tar.bz2 | |
mv pidgin-2.14.1 pidgin | |
curl --http1.1 -L https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.1/pidgin-2.14.1-win32-bin.zip/download -o pidgin-win32bin.zip | |
unzip pidgin-win32bin.zip | |
cp pidgin-2.14.1-win32bin/libpurple.dll pidgin/libpurple/ | |
- name: Load Win32 deps from cache | |
id: win32-cache | |
uses: actions/cache@v4 | |
with: | |
path: win32-dev | |
key: win32-dev | |
- name: Setup WinPidgin build | |
if: steps.win32-cache.outputs.cache-hit != 'true' | |
run: | | |
mkdir win32-dev | |
curl --http1.1 -L https://download.gnome.org/binaries/win32/glib/2.28/glib-dev_2.28.8-1_win32.zip -o glib-dev.zip | |
unzip glib-dev.zip -d win32-dev/glib-2.28.8 | |
curl --http1.1 -L https://download.gnome.org/binaries/win32/dependencies/gettext-runtime-dev_0.18.1.1-2_win32.zip -o gettext-runtime.zip | |
unzip gettext-runtime.zip -d win32-dev/glib-2.28.8 | |
curl --http1.1 -L https://download.gnome.org/binaries/win32/dependencies/zlib-dev_1.2.5-2_win32.zip -o zlib-dev.zip | |
unzip zlib-dev.zip -d win32-dev/glib-2.28.8 | |
ls win32-dev/ | |
- name: make | |
run: | | |
export CC=i686-w64-mingw32-gcc | |
export PIDGIN_TREE_TOP=pidgin | |
export GTK_TOP=win32-dev/glib-2.28.8 | |
make -f Makefile.mingw | |
- name: Create NSIS Installer | |
run: | | |
makensis nsis/pidgin-meshtastic-installer.nsi | |
- name: archive | |
if: ${{ !env.ACT }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: plugin | |
path: | | |
lib*.dll | |
pidgin-meshtastic-plugin.exe | |
- name: release | |
if: ${{ !env.ACT }} | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: lib*.dll | |
tag: nightly-${{ github.sha }} | |
name: Nightly ${{ github.sha }} | |
allowUpdates: true | |
makeLatest: true | |
- name: attest | |
if: ${{ !env.ACT }} | |
uses: actions/attest-build-provenance@v1 | |
with: | |
subject-path: | | |
lib*.dll | |
pidgin-meshtastic-plugin.exe |