Files
bherbruck e11055b6e3 CI and release: every Linux and Windows job runs on Blacksmith (#16323)
* CI and release: every Linux and Windows job runs on Blacksmith

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Release: macOS builds on Blacksmith's macOS 15 runners too

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Release on Blacksmith: fix the FreeBSD, Flatpak and Snap jobs, drop the icons job

- FreeBSD: the VM action syncs $HOME/work and cds into $GITHUB_WORKSPACE,
  which only works where the checkout lives under $HOME/work (GitHub's
  runners; Blacksmith's is under $HOME/_work). The action now only starts
  the VM (sync: no); rsync copies the source in and dist/release out. The
  VM is sized from the runner, on a 16 vCPU runner.
- Flatpak: the AppArmor user-namespace sysctl is only set where it exists.
- Snap: installing snapcraft retries Snap Store timeouts (HTTP 408).
- The icons job goes: make_icons only copies the committed icon files and
  package.ps1 falls back to the same committed solidcraft.ico, so Windows
  no longer waits for it.
- actionlint knows the new runner labels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 21:22:37 +00:00

41 lines
1.3 KiB
YAML

# Publishing a GitHub release (not a prerelease) promotes the snaps that release.yml uploaded to
# the Snap Store's candidate channel to stable, so `sudo snap install solidcraft` gets it.
# Skipped until the owner adds the SNAPCRAFT_STORE_CREDENTIALS secret; see docs/releasing.md.
name: Snap Store
on:
release:
types: [released]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: snap-store
cancel-in-progress: false
jobs:
promote:
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- id: creds
name: Check for Snap Store credentials
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
run: |
if [ -n "$SNAPCRAFT_STORE_CREDENTIALS" ]; then
echo "configured=true" >>"$GITHUB_OUTPUT"
else
echo "No SNAPCRAFT_STORE_CREDENTIALS secret: nothing to promote."
fi
- name: Promote candidate to stable
if: steps.creds.outputs.configured == 'true'
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
run: |
sudo snap install snapcraft --classic
snapcraft status solidcraft
snapcraft promote solidcraft --from-channel=latest/candidate --to-channel=latest/stable --yes
snapcraft status solidcraft