Skip to content

Commit

Permalink
modernize msys2 environments
Browse files Browse the repository at this point in the history
The msys2 action can install packages via pacboy now.
The hack to use clang32 stopped working.
GCC is smaller and has less dependencies than Clang on msys2's
environments, replace Clang with GCC it to speed up the CI.
Unify MSYS environment and other msys2 environments into the same job.
Disable LTO on msys2 because it's broken.
Don't let the fallback integration fallback on libobsd.
  • Loading branch information
guijan committed Dec 27, 2024
1 parent 9cedc0a commit c4d7067
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 66 deletions.
46 changes: 7 additions & 39 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -173,27 +173,21 @@ jobs:
shell: msys2 {0}
strategy:
matrix:
sys: [mingw64, mingw32, ucrt64, clang64, clang32]
# clang32 was broken last time I tried
sys: [msys, mingw64, mingw32, ucrt64, clang64]
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
path-type: strict
install: pactoys
- name: setup
run: |
# Lines stolen from:
# https://github.com/msys2/MINGW-packages/blob/56dd3261b3e67c901e45f9314b671ea19104bc0e/.github/workflows/main.yml#L56-L63
grep -qF '[clang32]' /etc/pacman.conf || sed -i \
'1s|^|[clang32]\nInclude = /etc/pacman.d/mirrorlist.mingw\n|' \
/etc/pacman.conf
pacman --noconfirm -Suuy
pacboy --noconfirm -S --needed clang:p meson:p ninja:p
pacboy: gcc:p meson:p ninja:p
- uses: actions/[email protected]
- name: build
run: |
meson setup -Dtest_system=true build
# LTO breaks msys (other environments seem to work):
# https://github.com/msys2/MINGW-packages/issues/11706
# contributor says "not really production ready on windows"
meson setup -Db_lto=false -Dtest_system=true build
meson compile -C build
- name: test
run: meson test --no-suite system -C build
Expand All @@ -205,32 +199,6 @@ jobs:
name: meson-logs-${{matrix.sys}}
path: build/meson-logs

MSYS:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MSYS
path-type: strict
install: git gcc clang meson ninja
- uses: actions/[email protected]
- name: build
run: |
meson setup -Dtest_system=true build
meson compile -C build
- name: test
run: meson test --no-suite system -C build
- name: test_system
run: meson test --suite system -C build || true
- uses: actions/[email protected]
if: always()
with:
name: meson-logs-msys2
path: build/meson-logs

netbsd:
runs-on: ubuntu-latest
steps:
Expand Down
42 changes: 15 additions & 27 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2022-2023 Guilherme Janczak <[email protected]>
# Copyright (c) 2022-2024 Guilherme Janczak <[email protected]>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
Expand All @@ -23,46 +23,34 @@ jobs:
shell: msys2 {0}
strategy:
matrix:
sys: [mingw64, mingw32, ucrt64, clang64, clang32]
sys: [msys, mingw64, mingw32, ucrt64, clang64]
link: [shared, dynamic]
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
path-type: strict
install: groff pactoys dos2unix
- name: setup
run: |
# Lines stolen from:
# https://github.com/msys2/MINGW-packages/blob/56dd3261b3e67c901e45f9314b671ea19104bc0e/.github/workflows/main.yml#L56-L63
grep -qF '[clang32]' /etc/pacman.conf || sed -i \
'1s|^|[clang32]\nInclude = /etc/pacman.d/mirrorlist.mingw\n|' \
/etc/pacman.conf
pacman --noconfirm -Suuy
pacboy --noconfirm -S --needed clang:p meson:p ninja:p pkg-config:p
- uses: actions/[email protected]
- uses: actions/[email protected]
pacboy: |
gcc:p meson:p ninja:p pkgconf:p groff: dos2unix:
- uses: actions/[email protected] # checkout libobsd
- uses: actions/[email protected] # checkout dictpw
with:
repository: guijan/dictpw
path: dictpw
- name: shared test
run: |
meson setup -Dprovide_libbsd=true build
meson install -C build
cd dictpw
meson setup build
meson compile -C build
- name: static test
- name: ${{matrix.link}} test
run: |
meson setup -Dprovide_libbsd=true -Ddefault_library=static --wipe \
build
# Meson's default destdir on MSYS isn't in pkgconf's default search
# path.
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
meson setup build -Db_lto=false -Dprovide_libbsd=true \
-Ddefault_library=${{matrix.link}}
meson install -C build
cd dictpw
meson setup -Dstatic_deps=true build
meson setup build -Db_lto=false --wrap-mode=nofallback
meson compile -C build
- uses: actions/[email protected]
if: always()
with:
name: meson-logs-int-${{matrix.sys}}
name: meson-logs-int-${{matrix.sys}}-${{matrix.link}}
path: |
build/meson-logs

0 comments on commit c4d7067

Please sign in to comment.