Skip to content

Unblock and simplify the GitHub Actions configuration introduced in #52 - #61

Merged
svgeesus merged 2 commits into
pnggroup:mainfrom
ctruta:build/matrix
Dec 15, 2025
Merged

Unblock and simplify the GitHub Actions configuration introduced in #52#61
svgeesus merged 2 commits into
pnggroup:mainfrom
ctruta:build/matrix

Conversation

@ctruta

@ctruta ctruta commented Dec 12, 2025

Copy link
Copy Markdown
Member

Summary

While the original CI contribution was valuable and got us up and running with cross-platform testing, the extensive build matrix (10+ configurations) was more than necessary for a portable C project like pngcheck. This simplification right-sizes our CI to match the project's actual needs.

In addition, this PR moves to *-latest runners (ubuntu-latest, macos-latest, windows-latest) instead of pinning specific versions. GitHub retires older runner images regularly, andmacos-13 was just retired: actions/runner-images#13046
I expect ubuntu-22.04 to follow sooner or later. As maintainers, we'd rather NOT spend time chasing runner deprecations.

In the end, pngcheck is portable C code that compiles cleanly across platforms. Testing every OS version and architecture permutation provides diminishing returns while increasing CI time and maintenance burden. Downstream projects may, of course, augment this as they see fit.

Details

Commit dfbab61: Consolidate CI config; trigger on all branches

  • Move matrix JSON files into .github/workflows/ alongside the workflows that use them
  • Enable CI triggers on all branches (not just main) so contributors can test their work

Commit c37d120: Simplify the build matrices and the release workflow

  • Reduce the CMake builds from 8 to 4 configurations: Ubuntu/gcc, macOS/clang, Windows/MSVC, Windows/MSYS2/gcc.
  • Simplify the Makefile build to Ubuntu-only.
  • Streamline the release workflow to Windows binaries only. (Downstream maintainers will handle their respective platforms.)

Move matrix.json and matrix-makefile.json from the project root to
.github/workflows/ where they belong, alongside the workflow files
that use them.

Remove the branch restriction on push triggers to allow CI runs on
all feature branches, not just on main.
Reduce the CMake build matrix to 4 configurations:
- Ubuntu (ubuntu-latest, using gcc)
- macOS (macos-latest, using clang)
- Windows MSVC (windows-latest)
- Windows MSYS2 (windows-latest, using gcc)

Simplify the Makefile build for Ubuntu only -- no matrix needed.

Streamline the release workflow to produce Windows binaries only.
Downstream maintainers will build and package the builds for all
other platforms.

@svgeesus svgeesus left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for sorting this out!

@svgeesus
svgeesus merged commit bd33ad6 into pnggroup:main Dec 15, 2025
6 checks passed
@ctruta
ctruta deleted the build/matrix branch December 15, 2025 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants