Skip to content

ci: pin tile57 by commit, build both Linux arches, and add the release workflow - #11

Merged
beetlebugorg merged 7 commits into
mainfrom
feat/ci-releases
Aug 24, 2026
Merged

ci: pin tile57 by commit, build both Linux arches, and add the release workflow#11
beetlebugorg merged 7 commits into
mainfrom
feat/ci-releases

Conversation

@beetlebugorg

Copy link
Copy Markdown
Owner

CI checked out whatever tile57's default branch held at run time. Both workflows now pin the same tile57 commit (edcac13, current main) through one TILE57_REF env var - bump it deliberately to track a new engine.

CI's linux job gains an ubuntu-24.04-arm leg so both Linux release targets are proven before tag day.

release.yml follows tile57's release model: a v* tag checks the version in cmake/Package.cmake and src/tile57_pi.cpp against the tag, builds the Linux x86_64/aarch64 and Windows x86 import tarballs, and attaches them to a GitHub release with SHA256SUMS. A suffixed tag (v0.2.0-rc1) publishes as a prerelease.

…e workflow

The fix/maplibre-rendering branch CI built against was merged and deleted,
which broke the engine checkout. Both workflows now pin the same tile57
commit (edcac13, current main) through one TILE57_REF env var - bump it
deliberately to track a new engine.

CI's linux job gains an ubuntu-24.04-arm leg so both Linux release targets
are proven before tag day.

release.yml follows tile57's release model: a v* tag checks the version in
cmake/Package.cmake and src/tile57_pi.cpp against the tag, builds the
Linux x86_64/aarch64 and Windows x86 import tarballs, and attaches them to
a GitHub release with SHA256SUMS. A suffixed tag (v0.2.0-rc1) publishes as
a prerelease.
Both mac arches build natively (Homebrew wx/GLEW are host-arch, and a
plugin must match the arch OpenCPN runs as). The job pulls the OpenCPN
5.14.0 universal pkg, expands it with pkgutil, and points -DOCPN_APP at
the extracted app, so the wxWidgets retarget and ad-hoc re-sign run the
same way they do on a user's machine. A verify step asserts every wx
reference points into the app bundle, since fix-macos-libs.sh only warns
when the app is missing.

Releases still skip macOS: Package.cmake has no macOS layout, so the CI
artifact is the bare retargeted dylib.
The pkg installs AS /Applications/OpenCPN.app, so its expanded payload
root is the app Contents/ directly and no OpenCPN.app directory exists to
find. Locate */Contents/Frameworks - the only part the retarget reads -
and derive the app root from it.
zig build lib installed tile57's raw archive on macOS, skipping the ld64
repack the default install runs, so the plugin link failed with "64-bit
mach-o member not 8-byte aligned". tile57 1d7a7b7 installs the repacked
archive from the lib step too.
…bundle

Homebrew's main wxwidgets formula moved to wx 3.3. OpenCPN.app bundles
3.2, and the retarget only rebinds within the same minor (wx keeps ABI
across 3.2.x, not across 3.2 -> 3.3), so the 3.3 references were left
pointing at Homebrew and the verify step failed. The versioned keg is
keg-only, so Configure names its wx-config explicitly.
Homebrew's wxwidgets@3.2 renames wx-config to wx-config-3.2 to avoid
clashing with the main formula, so the plain wx-config path did not
exist and FindwxWidgets failed.
@beetlebugorg
beetlebugorg merged commit ac80ae8 into main Aug 24, 2026
6 checks passed
@beetlebugorg
beetlebugorg deleted the feat/ci-releases branch August 24, 2026 19:47
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.

1 participant