Skip to content

automate nsis compile #11

automate nsis compile

automate nsis compile #11

Workflow file for this run

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