Since the release workflow moved to storytold/craft-common-actions, it has
passed only the Apple and WINDOWS_CERTIFICATE secrets. The signing job reads
values from the release environment, but only for names the caller lists, so
the AZURE_* names that Trusted Signing uses came through empty and Windows
builds would ship unsigned. Same fix as storytold/craft-launcher#174.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
* ci: refactor workflows to use reusable artcraft-common-actions
* ci: point reusable workflows to storytold/craft-common-actions
* ci: pin storytold/craft-common-actions to commit 27a978f and pass secrets explicitly
* ci: use @main (unpinned) for craft-common-actions with explanation comment
* Release prep: bump to 0.8.0 and add a Linux riscv64 release build
- release.yml: new `linux-riscv64` job, ported from GridCraft. It cross-compiles on
ubuntu-24.04 against riscv64 libraries from ports.ubuntu.com (the Linux job's X11/Wayland/GL
-dev packages plus ALSA), ships effectcraft-<v>-linux-riscv64.tar.gz, and smoke-tests
effectcraft-cli under qemu-riscv64. The draft-release job now needs it, so its tarball is
uploaded and covered by SHA256SUMS.txt.
- packaging/linux/package.sh: cross-compiles when CROSS_ARCH/CROSS_TARGET/CROSS_COMPILE are set
(cargo --target, the cross strip, the EMULATOR smoke test), as GridCraft's does.
- Version 0.7.0 -> 0.8.0 (cargo xtask version set), Cargo.lock refreshed.
- README and docs/releasing.md list the riscv64 tarball.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Fix FreeBSD CI: pointer_wrap test harness, wasm32 target, clippy as_chunks
- pointer_wrap tests: the harnesses dropped run_ui's FullOutput with the font atlas upload still
in textures_delta, and epaint 0.36's drop check panics on that in debug builds. Every
pointer_wrap test failed on every platform; FreeBSD is the only CI that runs them. Clear the
delta, as the other UI tests do.
- freebsd.yml: install wasm32-unknown-unknown in the VM. Without it the host plug-in test's build
of examples/plugins/posterize-bands failed (E0463, no std) and the test skipped silently; now
it builds and runs.
- media/convert.rs: chunks_exact(2) -> as_chunks::<2>() (clippy chunks_exact_to_as_chunks,
new in Rust 1.99); same pairs, same dropped remainder.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
---------
Co-authored-by: Claude Opus 5.5 <[email protected]>
The DMG opened as a plain Finder window. It now shows the app icon's figure on
the EffectCraft colour, with EffectCraft.app and the Applications link side by
side.
- packaging/macos/dmg/: background.svg (source; text outlined, the figure an
<image> of assets/app-icon) and dmg-layout.DS_Store (Finder view settings:
window, icon size 128, positions, background), written by generate.py on any
OS, byte-for-byte reproducible, with nothing from the machine that ran it.
- package.sh renders the SVG with resvg (1x + 2x) into a HiDPI TIFF at package
time, so no bitmap is committed; release.yml installs resvg 0.48.1 (pinned,
--locked) on the macOS runner. The image is still built with hdiutil
makehybrid.
- The volume name drops the version: the layout finds the background through
an alias that includes the volume name. The DMG file name keeps the version.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- release.yml: `freebsd` job (FreeBSD 14.3 VM, the freebsd.yml packages) running the new
packaging/freebsd/package.sh; `flatpak` matrix (x86_64 on ubuntu-24.04, aarch64 on
ubuntu-24.04-arm) repackaging the Linux tarball with packaging/linux/flatpak-bundle.sh and the
new ai.storyteller.effectcraft.bundle.yml; both added to the draft release's needs.
- AppImages embed gh-releases-zsync update information and ship a .zsync beside them; the Linux
job installs zsync and checks both.
- version, Linux and web jobs drop `environment: release` (they read no secrets), so a dispatch on
a branch is a full dry run of every unsigned job; the draft release still needs the signed jobs.
- Flatpak finish-args documented and shared by the bundle and Flathub manifests (lint checks they
match); audio, GPU, portals, xdg-pictures/videos/documents, network for the optional model
downloads. The Flathub manifest now also installs effectcraft-cli.
- packaging-lint runs the FreeBSD layout dry run.
- README: Downloads section (every file a release ships) and nav entry; docs/releasing.md updated.
Co-authored-by: Brandon Thomas <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
Custom macOS larger runners in a runner group do not pick up jobs; the
built-in M2 Pro label does. Only release.yml uses it, and the
actions_macos_xl budget caps the monthly spend.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The standard macOS runners are shared with all CI and queue for an hour or
more. The macos-release runner (GitHub-hosted M2 Pro) is in a runner group
usable only by release.yml on the release branch, with a monthly spend cap
on the actions_macos_xl SKU.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Release builds add an arm64 MSI and portable zip, cross-compiled on the x64
runner (signing and WiX as for x64). package.ps1 checks each binary's PE
header before packaging: Machine must match -Arch, the app must be a GUI
program and the CLI a console program. It skips the CLI smoke run when an
ARM64 build can't run on the host. A new Windows ARM64 workflow packages the
ARM64 MSI, installs it on a Windows 11 ARM64 runner, checks both installed
exes are ARM64, runs the CLI, and uninstalls. Ported from printcraft#66.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
actionlint's shellcheck flagged SC2015 on release.yml's Install wasm-bindgen CLI step, failing
the Packaging lint workflow on main and release since 2 October.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
- effectcraft-cli: support --version/-V/version (the packaging smoke tests call it).
- Linux release job installs libasound2-dev for alsa-sys; deb/rpm depend on
libasound2/alsa-lib; Flatpak gets --socket=pulseaudio.
- packaging/web/package.sh builds with `cargo xtask web` (wasm-bindgen) and zips
<target>/web/dist; the release job installs wasm-bindgen-cli 0.2.129.
- xtask: version.rs (ported from PhotoCraft) called helpers that don't exist here,
so xtask didn't compile; use the local run() and wire up `cargo xtask version`.
Co-Authored-By: Claude Opus 5.5 <[email protected]>