Skip to content

Bump actions/setup-python from 6 to 7 in the all group #163

Bump actions/setup-python from 6 to 7 in the all group

Bump actions/setup-python from 6 to 7 in the all group #163

Workflow file for this run

name: Windows CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
container: fedora:latest
steps:
- uses: actions/checkout@v7
- name: Install dependencies
run: |
# We have to install mingw32-nsis even though we're building a 64-bit installer. We've configured nsis to produce a 64-bit exe
dnf install -y autoconf automake diffutils fedpkg libtool mingw64-gcc-c++ mingw64-hidapi mingw64-libstdc++ mingw64-libzip mingw32-nsis mingw64-nsis mingw64-libpsl mingw64-libidn2 python3-pip python3-wheel
- name: Prep libcurl
run: |
mkdir mingw-curl
cd mingw-curl
dnf download mingw-curl --source
rpm2cpio *.src.rpm | cpio -idmv
cp mingw-curl.spec mingw-curl.original_spec
sed -i -f ../concordance/win/mingw-curl-spec-changes.sed mingw-curl.spec
cd -
- uses: actions/upload-artifact@v7
with:
name: src-spec
path: |
mingw-curl/*.spec
mingw-curl/*.original_spec
- name: Restore libcurl from cache (if available)
id: restore-curl
uses: actions/cache/restore@v6
with:
path: mingw-curl/noarch/*.rpm
key: libcurl-mingw64-schannel-${{ hashFiles('mingw-curl/*.spec') }}
- name: Build libcurl if it wasn't in the cache
if: steps.restore-curl.outputs.cache-hit != 'true'
run: |
cd mingw-curl
dnf -y builddep mingw-curl.spec
fedpkg local
cd -
# Explicit save/restore so that if libcurl compiles, it is cached and reused even if concordance/libconcord fail
- name: Save libcurl to cache
if: steps.restore-curl.outputs.cache-hit != 'true'
uses: actions/cache/save@v6
with:
path: mingw-curl/noarch/*.rpm
key: libcurl-mingw64-schannel-${{ hashFiles('mingw-curl/*.spec') }}
- uses: actions/upload-artifact@v7
with:
name: src-rpm
path: mingw-curl/*.rpm
- uses: actions/upload-artifact@v7
with:
name: bin-rpms
path: mingw-curl/noarch/*.rpm
- name: Build libconcord
run: |
rpm -i mingw-curl/noarch/*.rpm
cd libconcord
mkdir m4; autoreconf --install
mingw64-configure
mingw64-make
mingw64-make install
cd -
- name: Build concordance
run: |
cd concordance
mkdir m4; autoreconf --install
mingw64-configure LDFLAGS="$(rpm -E %{mingw64_ldflags}) -L$(rpm -E %{mingw64_bindir})"
mingw64-make
mingw64-make install
cd -
- name: Build installer
run: |
pip install mingw-ldd
MINGW_SYSROOT_BIN="/usr/x86_64-w64-mingw32/sys-root/mingw/bin" concordance/win/make_installer.py
- uses: actions/upload-artifact@v7
with:
name: windows-installer
path: concordance/win/concordance-installer.exe
test:
needs: build
runs-on: windows-latest
steps:
- uses: actions/download-artifact@v8
id: download
with:
name: windows-installer
- name: Install and test
run: |
${{steps.download.outputs.download-path}}\concordance-installer.exe /S
Start-Sleep -Seconds 5
cd "C:\Program Files\Concordance"
.\concordance.exe --version