Private
Public Access
1
0
Commit Graph

18 Commits

Author SHA1 Message Date
3326fa4445 fix: resolve all 4 build job failures
Debian: Add -d flag to dpkg-buildpackage (skip dep check,
rustup installed Rust not apt)

RPM/Arch: Fix missing run: | YAML syntax in dependency steps

Alpine: Fix abuild working directory - use /home/builduser
explicitly instead of $(pwd) which referenced act cache path
2026-04-27 00:19:32 +00:00
79b7080237 fix: add build-essential/gcc for Rust linker
Rust compilation requires a C compiler (cc) for linking.
Act runner containers do not have gcc installed by default.

Added build-essential (Ubuntu), gcc (Fedora/Alpine/Arch)
to dependency installation steps before Rust compilation.
2026-04-27 00:07:20 +00:00
bac1947e14 fix: use curl+tar checkout (act runners lack git)
Act runner containers do not have git installed.
Using curl+tar to download repo archive instead.
GITEATOKEN secret already verified working independently.
2026-04-27 00:00:49 +00:00
c5e3b682f0 fix: match secret name case GITEATOKEN (uppercase)
Gitea secrets are case-sensitive. The encrypted secret in DB is
named GITEATOKEN (uppercase). Workflow was using giteatoken (lowercase)
which caused decryption failures in Gitea runner.

Also unblocked stuck action_run #166 in database (status=1 queued).
2026-04-26 23:36:43 +00:00
20cb6dfaee fix: SSH checkout bypasses Gitea secret encryption issue
Gitea logs show: "decrypt secret giteatoken: failed to decrypt by secret,
the key might be incorrect" - secrets must be encrypted with Gitea
SECRET_KEY, not plaintext in DB.

Solution: Use SSH git clone for checkout which requires no secrets.
Runners are already registered with Gitea and have SSH access.
2026-04-26 23:29:39 +00:00
e3064ae60d fix: simplified curl+tar checkout now that giteatoken secret is in DB
Secret was inserted directly into Gitea MySQL database.
Checkout now uses simple authenticated curl to download archive.
2026-04-26 23:07:14 +00:00
f346793a25 fix: use SSH git clone for checkout to bypass Gitea API 404
Gitea archive API returns 404 for private repos. Switched to SSH-based
git clone which uses runner SSH keys for authentication.

- Replace curl+tar archive download with git clone over SSH
- Add ssh-keyscan for host key verification
- Alpine job installs openssh-client and git
- All other runners have git/ssh pre-installed
2026-04-26 21:16:07 +00:00
44359c23ff fix: add GITEA_TOKEN auth to archive download
Gitea returns 404 for private repo archives without authentication.
Added Authorization header with token to curl command for all
checkout steps.
2026-04-26 21:05:01 +00:00
5f5a79100f fix: replace git clone with curl+tar for act runner compatibility
The act runner images do not include git. Previous attempt used git clone
which failed with "git: command not found".

- Replace all git clone with curl downloading Gitea archive tarball
- Use tar to extract the archive into the working directory
- No dependency on git for checkout step
2026-04-26 20:52:35 +00:00
5c4c599c3a fix: use git clone instead of fetch/checkout for act runner compatibility
The Gitea runner uses act which does not auto-checkout when using
shell commands instead of JS actions. The previous git fetch/checkout
failed silently because there was no .git directory.

- Replace all checkout steps with git clone into current directory
- Add safe.directory config to avoid git ownership errors
- Use GITEA_TOKEN for authenticated clone if available
2026-04-26 20:18:58 +00:00
4433c90390 fix: quote "on" key in YAML to prevent boolean parsing
YAML 1.1 reserves "on" as a boolean keyword (meaning True).
Without quotes, Gitea Actions could not parse workflow triggers,
resulting in no jobs being scheduled. This quotes the key as "on":
to ensure it is parsed as a string event trigger key.
2026-04-26 20:13:39 +00:00
89e2b01eef fix: replace actions/checkout with manual git commands
Gitea runners do not have Node.js installed, which is required
for all JavaScript-based GitHub Actions including actions/checkout.

- Replace all actions/checkout@v4 with manual git fetch/checkout
- All checkout logic now uses shell commands only
- No JavaScript-based actions remain in the workflow
2026-04-26 20:04:16 +00:00
78134210a2 fix: replace JS-based actions with shell commands for Gitea compatibility
- Remove dtolnay/rust-toolchain (JS action) → use rustup via curl
- Remove Swatinem/rust-cache (JS action) → no replacement, builds from scratch
- All jobs now install Rust toolchain via shell commands
- Alpine job installs rustup directly with musl target support
- Ensures compatibility with Gitea Actions runners
2026-04-26 19:40:59 +00:00
d6748fa261 refactor: update CI for native per-OS runners
- Replace generic "linux" runner label with dedicated per-OS labels
  (ubuntu-24.04, fedora, alpine, arch)
- Remove all container declarations (native runner execution)
- Add build gate dependencies: build jobs need fmt+clippy+test
- Extract release upload logic into reusable scripts/upload-release.sh
- Fix build-alpine.sh: remove hardcoded container paths, add
  SKIP_CARGO_BUILD support
- Fix build-arch.sh: remove hardcoded container paths, add
  SKIP_CARGO_BUILD support
- Fix build-rpm.sh: remove sudo, native runner compatible
- Remove Dockerfile.rpm and Dockerfile.arch (no longer needed)
- Add sudo to Ubuntu/Fedora/Arch package installs for safety
- Add nodejs to Alpine deps for Gitea Actions compatibility
- Make upload-release.sh POSIX sh compatible (Alpine)
- Fix curl -sf to curl -s in upload-release.sh (404 on new releases)
2026-04-26 19:21:09 +00:00
e6f1d9c863 fix: Update dependencies (rand vulnerability fix) and add audit exception for rustls-pemfile (RUSTSEC-2025-0134) 2026-04-24 13:59:13 +00:00
96d31520b9 fix: Remove release.yml workflow - ci.yml is the single master workflow 2026-04-24 13:49:56 +00:00
fafab7ee1d feat: Consolidate CI and Release into single master workflow 2026-04-24 13:15:29 +00:00
ec9d887d02 fix: Move workflows to .gitea/workflows/ for Gitea Actions compatibility 2026-04-14 19:45:08 +00:00