14 Commits

Author SHA1 Message Date
Siavash Sameni
a655d3bbe8 Re-enable release CI workflow trigger
All checks were successful
CI / test (push) Successful in 2m12s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 11:54:04 +04:00
Siavash Sameni
82ea10f2d5 Bump version to 0.6.3, temporarily disable release CI
Some checks failed
CI / test (push) Failing after 1m35s
Disable release workflow trigger to prevent duplicate builds
when tagging manually with pre-built binaries.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 11:51:34 +04:00
Siavash Sameni
817535a0ad Add Android aarch64/armv7 targets to release builds
Some checks failed
CI / test (push) Failing after 1m31s
Build & Release / release (push) Successful in 4m49s
Adds ARMv8 (aarch64-linux-android) and ARMv7 (armv7-linux-androideabi)
builds for Termux/Android using the Android NDK r27c. Release artifacts
now include btest-android-aarch64.tar.gz and btest-android-armv7.tar.gz.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 19:24:35 +04:00
Siavash Sameni
aa663f6b38 Remove Docker build from CI, add local push-docker.sh script
All checks were successful
CI / test (push) Successful in 1m9s
Build & Release / release (push) Successful in 2m53s
crane can't pull scratch in CI. Docker images are built locally
on Mac where Docker is available, then pushed to Gitea registry.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:53:21 +04:00
Siavash Sameni
9a6be68e62 Fix crane: use mutate for entrypoint/cmd instead of append flags
Some checks failed
CI / test (push) Successful in 1m6s
Build & Release / release (push) Failing after 2m44s
crane append doesn't support --set-entrypoint. Use crane mutate
as a separate step to set entrypoint and cmd on the pushed image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:46:49 +04:00
Siavash Sameni
e686e66ded Add Docker image push to release workflow
Some checks failed
CI / test (push) Successful in 1m7s
Build & Release / release (push) Failing after 2m44s
Uses crane (no Docker daemon needed) to build a minimal scratch-based
OCI image from the static musl binary and push it to the Gitea
container registry. Tags both vX.Y.Z and latest.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:39:40 +04:00
Siavash Sameni
53a9795445 Add Windows x86_64 cross-compilation to release workflow
All checks were successful
CI / test (push) Successful in 1m7s
Build & Release / release (push) Successful in 2m49s
Uses gcc-mingw-w64 to cross-compile btest.exe from Linux.
Release now includes 4 targets: Linux x86_64/aarch64/armv7 + Windows x86_64.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:36:27 +04:00
Siavash Sameni
fd148acffe Remove all Node.js actions, use pure shell for CI/CD
All checks were successful
CI / test (push) Successful in 1m10s
Build & Release / release (push) Successful in 2m11s
The act runner has no Node.js in container jobs. Replace
actions/upload-artifact and actions/download-artifact with
direct Gitea API uploads from a single job that builds all
three architectures sequentially.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:31:39 +04:00
Siavash Sameni
83f2b4c275 Fix release workflow: add git clone fallback for all build jobs
Some checks failed
CI / test (push) Has been cancelled
Build & Release / build-linux-x86_64 (push) Failing after 1m4s
Build & Release / build-linux-aarch64 (push) Failing after 1m12s
Build & Release / build-linux-armv7 (push) Failing after 58s
Build & Release / release (push) Has been skipped
Same fix as CI — workspace may be empty when using container jobs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:28:11 +04:00
Siavash Sameni
67e1f53572 CI: add debug step + fallback git clone if workspace is empty
Some checks failed
CI / test (push) Successful in 1m9s
Build & Release / build-linux-x86_64 (push) Failing after 12s
Build & Release / release (push) Has been cancelled
Build & Release / build-linux-aarch64 (push) Has been cancelled
Build & Release / build-linux-armv7 (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:25:39 +04:00
Siavash Sameni
7f701d8442 Fix CI: use act runner workspace directly, no manual clone
Some checks failed
CI / test (push) Failing after 2s
Build & Release / build-linux-x86_64 (push) Failing after 14s
Build & Release / build-linux-aarch64 (push) Failing after 16s
Build & Release / build-linux-armv7 (push) Failing after 15s
Build & Release / release (push) Has been skipped
The act runner already mounts the repo at the workspace path.
Removed manual git clone and working_directory overrides.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:23:33 +04:00
Siavash Sameni
99a751fa28 Fix CI: replace actions/checkout with manual git clone
Some checks failed
Build & Release / build-linux-x86_64 (push) Failing after 24s
CI / test (push) Successful in 1m6s
Build & Release / build-linux-aarch64 (push) Failing after 28s
Build & Release / build-linux-armv7 (push) Failing after 32s
Build & Release / release (push) Has been skipped
The act runner executes actions/checkout inside the job container,
but that action is a Node.js script and rust:1.86-slim has no node.
Use plain git clone instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:10:15 +04:00
Siavash Sameni
f97ee1387f Fix: rename GITEA_TOKEN secret to RELEASE_TOKEN
Some checks failed
Build & Release / build-linux-x86_64 (push) Failing after 17s
Build & Release / build-linux-aarch64 (push) Failing after 19s
Build & Release / build-linux-armv7 (push) Failing after 4s
Build & Release / build-macos (push) Failing after 4s
Build & Release / release (push) Has been skipped
CI / test (push) Failing after 3s
Gitea reserves the GITEA_ prefix for secrets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:04:48 +04:00
Siavash Sameni
de193dc9f5 Add Gitea Actions CI/CD workflows
Some checks failed
CI / test (push) Failing after 13s
- .gitea/workflows/ci.yml: run tests on every push/PR
- .gitea/workflows/release.yml: build Linux binaries on tag push
  - x86_64 (musl static)
  - aarch64 / RPi 64-bit (musl static)
  - armv7 / RPi 32-bit (musl static)
  - Auto-creates Gitea release with all artifacts
- scripts/build-macos-release.sh: build macOS binary locally and
  upload to an existing Gitea release

Release flow:
  git tag v0.1.0 && git push origin v0.1.0
  # CI builds Linux + RPi, creates release
  # Then on Mac: ./scripts/build-macos-release.sh --upload v0.1.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:00:58 +04:00