Release / build (x86_64-unknown-linux-gnu) (push) Failing after 6s
Release / build (aarch64-apple-darwin) (push) Canceled after 0s
Release / build (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Release / build (x86_64-apple-darwin) (push) Canceled after 0s
Release / build (x86_64-pc-windows-msvc) (push) Canceled after 0s
Release / publish GitHub Release (push) Canceled after 0s
The GitHub account is restored, so github.com/ZacharyZhang-NY/Kigi-CLI is
the canonical repo again. Reverse the 2026-08 Gitea migration:
- .github/workflows/{release,warm-cache}.yml: restore the GitHub-hosted
pipeline dropped in 3e1652c, unchanged — hosted runners, rust-cache,
softprops release with every asset attached atomically.
- .gitea/workflows/release.yml: retire the Gitea edition (the runners are
being deregistered; git.zacharyzhang.com keeps the v0.1.12/v0.1.13
releases for old clients).
- kigi-env: update_base_url now defaults to the GitHub Releases API. The
updater already speaks GitHub wire format and sends a User-Agent; v0.1.14
is published to BOTH forges with identical assets so pre-0.1.14 installs
polling Gitea self-update onto the GitHub channel.
- install.sh / install.ps1: resolve releases from api.github.com.
- feedback, /docs, SECURITY.md, frontend worker + site: repo, issues and
raw-file links point at github.com / raw.githubusercontent.com.
- docs/RELEASE.md: GitHub edition of the checklist; Gitea runner sections
retired.
- version: 0.1.13 -> 0.1.14 (the cross-forge transition release).
Claude-Session: https://claude.ai/code/session_01A6RcwHhhsFYYrNdQB4ASuP
86 lines
2.7 KiB
YAML
86 lines
2.7 KiB
YAML
name: Warm build cache
|
|
|
|
# Release builds run on TAG refs, and GitHub Actions cache isolation only
|
|
# lets a run restore caches created on its OWN ref or the DEFAULT branch.
|
|
# No workflow ran on `main`, so every release compiled the whole workspace
|
|
# cold on all five targets (~50 min wall clock, gated by Windows). This
|
|
# workflow builds the same `release-dist` profile on `main` so tag builds
|
|
# restore a warm default-branch cache.
|
|
#
|
|
# Triggers: dependency-affecting pushes to main (each release's version-bump
|
|
# commit warms the cache for the NEXT release), a weekly refresh so the
|
|
# cache never hits GitHub's 7-day unused-eviction, and manual dispatch.
|
|
#
|
|
# The setup steps mirror release.yml's build job (toolchain, target,
|
|
# dotslash/protoc, rust-cache key) — keep them in lockstep, or the cache
|
|
# key won't match and releases go back to cold builds.
|
|
|
|
on:
|
|
push:
|
|
branches: ["main"]
|
|
paths:
|
|
- "Cargo.lock"
|
|
- "Cargo.toml"
|
|
- "rust-toolchain.toml"
|
|
- ".github/workflows/warm-cache.yml"
|
|
schedule:
|
|
- cron: "17 5 * * 1"
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
concurrency:
|
|
group: warm-cache
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
warm:
|
|
name: warm (${{ matrix.target }})
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- target: aarch64-apple-darwin
|
|
os: macos-14
|
|
- target: x86_64-apple-darwin
|
|
os: macos-14
|
|
- target: x86_64-unknown-linux-gnu
|
|
os: ubuntu-24.04
|
|
- target: aarch64-unknown-linux-gnu
|
|
os: ubuntu-24.04-arm
|
|
- target: x86_64-pc-windows-msvc
|
|
os: windows-2022
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install toolchain (rust-toolchain.toml)
|
|
run: rustup show
|
|
|
|
- name: Add build target
|
|
run: rustup target add ${{ matrix.target }}
|
|
|
|
- name: Install dotslash (protoc launcher)
|
|
run: cargo install dotslash --locked
|
|
|
|
- name: Install protoc (Windows PATH fallback)
|
|
if: runner.os == 'Windows'
|
|
shell: pwsh
|
|
run: |
|
|
$url = "https://github.com/protocolbuffers/protobuf/releases/download/v29.3/protoc-29.3-win64.zip"
|
|
Invoke-WebRequest -Uri $url -OutFile protoc.zip
|
|
Expand-Archive protoc.zip -DestinationPath "$env:USERPROFILE\protoc"
|
|
Add-Content $env:GITHUB_PATH "$env:USERPROFILE\protoc\bin"
|
|
|
|
# Same key as release.yml so tag builds restore this cache verbatim.
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
key: ${{ matrix.target }}
|
|
|
|
- name: Build kigi (release-dist)
|
|
run: cargo build --profile release-dist -p kigi-bin --locked --target ${{ matrix.target }}
|