From 3e1652ca9869eb47d1d94dccb569ee8099bd5e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Mon, 10 Aug 2026 22:11:28 -0400 Subject: [PATCH] ci: drop the inert GitHub workflows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gitea ignores `.github/workflows/` entirely once `.gitea/workflows/` is non-empty, so these two files have had no effect since the release workflow landed — and the GitHub repo they targeted is gone (404, suspended account), so they cannot run there either. They were not merely dead: warm-cache.yml's Monday cron kept firing on the Gitea side before `.gitea/` existed, queueing jobs against GitHub-hosted labels (`macos-14`, `windows-2022`, `ubuntu-24.04-arm`) that no self-hosted runner advertises. Those sat queued forever, and its one dispatchable leg failed on `rustup: command not found` — the same bare-image gap the Gitea workflow now provisions around. `.gitea/workflows/release.yml` is the only pipeline; docs/RELEASE.md already documents it as such. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/release.yml | 147 ------------------------------- .github/workflows/warm-cache.yml | 85 ------------------ 2 files changed, 232 deletions(-) delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/warm-cache.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 7febfd5..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,147 +0,0 @@ -name: Release - -# PRD F8: on tag push v*, build the single-file kigi binary for the five -# supported targets, package per-target archives named -# kigi--.{tar.gz|zip} (binary + LICENSE + NOTICE + -# THIRD-PARTY-NOTICES), generate SHA256SUMS, and publish everything as a -# GitHub Release. install.sh / install.ps1 and the in-app self-updater -# (kigi-update) both resolve these exact asset names — keep the naming in -# lockstep with auto_update::release_asset_name(). - -on: - push: - tags: ["v*"] - -permissions: - contents: write - -env: - CARGO_TERM_COLOR: always - -jobs: - build: - name: build (${{ matrix.target }}) - strategy: - fail-fast: false - matrix: - include: - - target: aarch64-apple-darwin - os: macos-14 - # macos-14 runners are arm64; the x86_64 slice is a cross-compile - # against the same SDK (macos-13 Intel runners are deprecated). - - 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: Check tag matches workspace version - shell: bash - run: | - tag_version="${GITHUB_REF_NAME#v}" - cargo_version="$(sed -n 's/^version = "\(.*\)"$/\1/p' Cargo.toml | head -n 1)" - if [ "$tag_version" != "$cargo_version" ]; then - echo "Tag $GITHUB_REF_NAME does not match workspace version $cargo_version" >&2 - exit 1 - fi - - - 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 - - # Windows cannot exec the dotslash launcher directly (no shebang - # support → os error 193), and the build script's documented fallback - # is a protoc on PATH — install the same version the dotslash file - # pins (v29.3). - - 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" - - - 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 }} - - - name: Package archive (tar.gz) - if: runner.os != 'Windows' - shell: bash - run: | - version="${GITHUB_REF_NAME#v}" - archive="kigi-${version}-${{ matrix.target }}.tar.gz" - staging="$(mktemp -d)" - cp "target/${{ matrix.target }}/release-dist/kigi" "$staging/kigi" - cp LICENSE "$staging/" - [ -f NOTICE ] && cp NOTICE "$staging/" - for f in THIRD-PARTY-NOTICES THIRD-PARTY-NOTICES.md; do - [ -f "$f" ] && cp "$f" "$staging/" - done - tar -C "$staging" -czf "$archive" . - shasum -a 256 "$archive" || sha256sum "$archive" - echo "ARCHIVE=$archive" >> "$GITHUB_ENV" - - - name: Package archive (zip) - if: runner.os == 'Windows' - shell: pwsh - run: | - $version = $env:GITHUB_REF_NAME.TrimStart("v") - $archive = "kigi-$version-${{ matrix.target }}.zip" - $staging = New-Item -ItemType Directory -Path (Join-Path $env:RUNNER_TEMP "staging") - Copy-Item "target/${{ matrix.target }}/release-dist/kigi.exe" (Join-Path $staging "kigi.exe") - Copy-Item LICENSE $staging - if (Test-Path NOTICE) { Copy-Item NOTICE $staging } - foreach ($f in @("THIRD-PARTY-NOTICES", "THIRD-PARTY-NOTICES.md")) { - if (Test-Path $f) { Copy-Item $f $staging } - } - Compress-Archive -Path (Join-Path $staging "*") -DestinationPath $archive - Get-FileHash -Algorithm SHA256 $archive - Add-Content -Path $env:GITHUB_ENV -Value "ARCHIVE=$archive" - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ env.ARCHIVE }} - path: ${{ env.ARCHIVE }} - if-no-files-found: error - - release: - name: publish GitHub Release - needs: build - runs-on: ubuntu-24.04 - steps: - - uses: actions/download-artifact@v4 - with: - path: dist - merge-multiple: true - - - name: Generate SHA256SUMS - working-directory: dist - run: | - ls -l - sha256sum kigi-* > SHA256SUMS - cat SHA256SUMS - - - name: Create GitHub Release - uses: softprops/action-gh-release@v2 - with: - files: dist/* - prerelease: ${{ contains(github.ref_name, '-') }} - generate_release_notes: true - fail_on_unmatched_files: true diff --git a/.github/workflows/warm-cache.yml b/.github/workflows/warm-cache.yml deleted file mode 100644 index 35f1809..0000000 --- a/.github/workflows/warm-cache.yml +++ /dev/null @@ -1,85 +0,0 @@ -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 }}