name: Release on: push: tags: - 'v*.*.*' jobs: build-release: name: Build Release Binaries runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: stable - name: Extract version from tag id: version run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT - name: Build release binaries run: cargo build --workspace --release --verbose - name: Strip binaries run: | strip target/release/supervisor || true strip target/release/coordinator || true strip target/release/horus || true strip target/release/osiris || true strip target/release/herorunner || true strip target/release/runner_osiris || true strip target/release/runner_sal || true - name: Create release directory run: mkdir -p release-artifacts - name: Package binaries run: | # Package each binary as a tarball for binary in supervisor coordinator horus osiris herorunner runner_osiris runner_sal; do if [ -f "target/release/$binary" ]; then tar -czf "release-artifacts/${binary}-${{ steps.version.outputs.VERSION }}-linux-x86_64.tar.gz" \ -C target/release "$binary" echo "Packaged $binary" else echo "Warning: $binary not found, skipping" fi done - name: Generate checksums run: | cd release-artifacts sha256sum *.tar.gz > checksums.txt cat checksums.txt - name: Create Release uses: actions/gitea-release@v1 with: files: release-artifacts/* token: ${{ secrets.GITHUB_TOKEN }} tag_name: ${{ steps.version.outputs.VERSION }} name: Release ${{ steps.version.outputs.VERSION }} body: | ## Horus Release ${{ steps.version.outputs.VERSION }} ### Binaries This release includes the following binaries for Linux x86_64: - `supervisor` - Hero Supervisor service - `coordinator` - Hero Coordinator service - `horus` - Horus main binary - `osiris` - Osiris server - `herorunner` - Hero runner - `runner_osiris` - Osiris runner - `runner_sal` - SAL runner ### Installation Download the appropriate binary for your system: ```bash # Example: Download and install supervisor wget https://git.ourworld.tf/peternashaat/horus/releases/download/${{ steps.version.outputs.VERSION }}/supervisor-${{ steps.version.outputs.VERSION }}-linux-x86_64.tar.gz tar -xzf supervisor-${{ steps.version.outputs.VERSION }}-linux-x86_64.tar.gz chmod +x supervisor sudo mv supervisor /usr/local/bin/ ``` ### Verification Verify the integrity of downloaded files using the checksums: ```bash sha256sum -c checksums.txt ``` ### Changes See commit history for detailed changes in this release. draft: false prerelease: false