Implement CI/CD Pipeline #1
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
CI/CD Pipeline implementation with gitea actions
I’ve Created a new branch
main_cicdpipelinethat adds a proper CI + Release pipeline for the Horus repo using Gitea Actions.What’s added
CI workflow (
ci.yml)Runs on branch pushes and PRs (release tags
v*.*.*are ignored).Discovers all crates under
bin/viafind bin -name Cargo.tomland, for each one, runs:cargo check,cargo test,cargo clippy, andcargo build --release.Uses
RUSTFLAGS="--cap-lints=warn"for check/test steps so “warnings as errors” in shared crates (likehero-runner) don’t break CI, while Clippy is still strict.Release workflow (
release.yml)v*.*.*.supervisor,coordinator,horus,osiris,herorunner,runner_osiris,runner_salinto versioned
*-<tag>-linux-x86_64.tar.gztarballs.checksums.txtand publishes a Gitea Release usingakkuman/gitea-release-action@v1, attaching all artifacts.Requirements
TOKEN_GITEA, which is a Gitea Personal Access Token withrepository: Read and Writepermission, so the workflow can create/update releases and upload assets.Once this branch is merged and the secret is set on the main repo, normal pushes/PRs will run CI, and tagging
vX.Y.Zwill automatically build and publish release artifacts.I’ve updated the release pipeline to build the Horus binaries via the
hero-gitDocker image instead of using plaincargo buildin the workflow.hero-gitimage (Ubuntu + V + herolib + entrypoint) and documented it inREADME.md.release.ymljob now runshorus_full_install.vshinside this image, writing all Horus binaries into/root/hero/bin, which is mounted back to the runner..tar.gzarchives and attached to the Gitea release, with checksums generated as well.This makes the release artifacts come from the same installer flow we use elsewhere, so releases are now aligned with the official herolib install process.