Rewrite Forgejo workflows around build_binaries/publish_binaries + ARM64 #8
Loading…
Add table
Add a link
Reference in a new issue
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?
Context
.forgejo/workflows/build.ymlinlines all CI steps and setscontinue-on-error: trueon clippy (line 58), silently ignoring lint failures..forgejo/workflows/release.yamluploads assets via raw curl and only targets a single musl amd64 build.build_lib_ci/forge-release-workflowmandate callingbuild_binaries/publish_binariesfrom the canonicalbuild_lib.shand shipping ARM64 artifacts alongside AMD64.Goals
.forgejo/workflows/build.ymlso every step runs viamake <target>(make fmt-check,make clippy,make test-all); removecontinue-on-error..forgejo/workflows/release.yaml:source scripts/build_lib.sh && forge_config && build_binaries "${{ matrix.target }}" && publish_binaries "${{ matrix.artifact }}".x86_64-unknown-linux-musl,aarch64-unknown-linux-gnu.sha256sum) for every asset.build_lib.sh(issue #${build_lib_issue}).Related skills:
build_lib_ci,forge-release-workflow,forge_package.Implementation Spec for Issue #8
Objective
Rewrite the two Forgejo CI workflow files (build.yml and release.yaml) to align with the canonical build_lib_ci / forge-release-workflow pattern. The build workflow must delegate all CI steps to Make targets (removing continue-on-error on clippy), and the release workflow must use build_binaries / publish_binaries from scripts/build_lib.sh with a 2-target matrix (AMD64 musl + ARM64 gnu) plus SHA-256 checksum generation.
Requirements
make <target>(fmt-check, clippy, test); remove continue-on-errorFiles to Modify/Create
.forgejo/workflows/build.yml- Rewrite CI to delegate to make targets.forgejo/workflows/release.yaml- Rewrite with build_lib.sh functions + 2-target matrix + checksumsMakefile- Add fmt-check, test-all, ci targetsscripts/build_lib.sh- Replace with canonical version (forge_config, build_binaries, publish_binaries).cargo/config.toml- Create; configure aarch64-linux-gnu linkerImplementation Plan
Step 1: Add missing Makefile targets
Files:
Makefilefmt-checktarget (cargo fmt --check)test-allalias fortestciconvenience target (fmt-check, check, clippy, test)Dependencies: none
Step 2: Replace scripts/build_lib.sh with canonical version
Files:
scripts/build_lib.shDependencies: none
Step 3: Create .cargo/config.toml for cross-compilation
Files:
.cargo/config.tomlDependencies: none
Step 4: Rewrite .forgejo/workflows/build.yml
Files:
.forgejo/workflows/build.ymlDependencies: Steps 1, 2
Step 5: Rewrite .forgejo/workflows/release.yaml
Files:
.forgejo/workflows/release.yamlDependencies: Steps 2, 3
Acceptance Criteria
Notes
Test Results
All workspace tests pass after rewriting CI workflows and Makefile targets.
Note:
make fmt-checkreports formatting issues in auto-generated files (osis_server_generated.rs, types_wasm_generated.rs, rpc_generated.rs). These files are regenerated by the OSchema build system and should be excluded from fmt checks or reformatted upstream.Implementation Summary
Changes Made
Makefile
fmt-checktarget (cargo fmt --check)test-allalias fortestciconvenience target runningfmt-check,check,clippy,testin sequencescripts/build_lib.sh
forge_config,build_binaries,publish_binaries,setup_linux_toolchain,cargo_env,ci_setup_toolchain, and more.cargo/config.toml (new)
aarch64-linux-gnu-gcclinker foraarch64-unknown-linux-gnucross-compilation target.forgejo/workflows/build.yml
make fmt-check,make check,make clippy,make testcontinue-on-error: truefrom clippy step -- lint failures now break the buildscripts/build_lib.shand callscargo_envfor consistent PATH setupgit clonetoactions/checkout@v4.forgejo/workflows/release.yaml
x86_64-unknown-linux-musl(linux-amd64) +aarch64-unknown-linux-gnu(linux-arm64)cargo build+ rawcurlupload withbuild_binaries/publish_binariesfrom build_lib.shsetup_linux_toolchainfor cross-compilation depsfail-fast: falseso one arch failure doesn't cancel the otherTest Results
Notes
make fmt-checkreports pre-existing formatting issues in auto-generated files (osis_server_generated.rs, etc.)publish_binariesfunction in the canonical build_lib.sh usesapi/cratesin the URL; the checksums step usesapi/packages. Both paths should be verified against the Forgejo instance.