Update workflow actions versions #46
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: Windows (msys2) CI Build | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- msys2-ci | |
jobs: | |
# We use msys2 for the following reasons: | |
# | |
# * Building pygobject isn't supported on MSVC, and they've no | |
# intention of ever supporting it | |
# | |
# * Building pyliblo is broken on MSVC | |
# - https://github.com/dsacre/pyliblo/issues/25 | |
build-msys: | |
name: Windows Build (msys2) | |
runs-on: windows-2019 | |
defaults: | |
run: | |
shell: msys2 {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { sys: mingw64, cc: gcc } | |
- { sys: mingw64, cc: clang } | |
- { sys: mingw32, cc: gcc } | |
- { sys: mingw32, cc: clang } | |
- { sys: ucrt64, cc: gcc } | |
- { sys: ucrt64, cc: clang } | |
- { sys: clang64, cc: clang } | |
- { sys: clang32, cc: clang } | |
steps: | |
# The `:p` suffix tells pacboy to use the version for the current shell | |
# (Saves having to change suffixes if we wish to try alternate shells.) | |
- name: Install and Configure Msys2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.sys }} | |
update: true | |
install: > | |
git | |
pacboy: > | |
cairo:p | |
${{ matrix.cc }}:p | |
gobject-introspection:p | |
gstreamer:p | |
gst-plugins-good:p | |
liblo:p | |
ninja:p | |
pkgconf:p | |
python-gobject:p | |
python-pip:p | |
python-pyqt5:p | |
qt5-svg:p | |
rtmidi:p | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
# The `export CC=...` is only needed on builds using clang as distutils | |
# assumes a default compiler of `gcc` for all environments, but doesn't | |
# harm the other builds. | |
# | |
# According to the known issues (https://www.msys2.org/docs/python/#known-issues), | |
# setuptools >= 60.0 is not compatible with MSys2 (or vice-versa). The | |
# `SETUPTOOLS_USE_DISTUTILS=stdlib` is the recommended work-around. | |
- name: Build/Install via pip | |
run: | | |
export CC=${{ matrix.cc }} | |
export SETUPTOOLS_USE_DISTUTILS=stdlib | |
pip install . | |
- name: Test run LiSP | |
run: | | |
cd ~ | |
linux-show-player --help | |
- name: Build a wheel | |
id: wheel | |
run: | | |
pip wheel --no-deps . | |
echo "filename=`ls *.whl`" >> $GITHUB_OUTPUT | |
# There's no difference between wheels created by the different | |
# environments, so only save one. | |
- name: Upload wheel | |
if: ${{ matrix.sys == 'mingw64' && matrix.cc == 'gcc' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ steps.wheel.outputs.filename }} | |
path: ${{ steps.wheel.outputs.filename }} |