Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

pipelines

Shared release pipeline for cablehead's Rust projects. One Dagger module and one reusable GitHub Actions workflow replace the per-repo copies that had drifted apart across pai-sho, http-nu, and friends.

On a v* tag push in a consuming repo it cross-builds the crate for macos-arm64, linux-arm64 (musl), and linux-amd64 (musl), then publishes a GitHub release with the tarballs and a changelog from changes/<tag>.md (generated from git log when the file is missing).

Consume it

Add one file to the project:

# .github/workflows/release.yml
name: Release
on:
  push:
    tags: ["v*"]
  workflow_dispatch:
permissions:
  contents: write
jobs:
  release:
    uses: cablehead/pipelines/.github/workflows/release-binaries.yml@main
    with:
      name: my-crate

name is the crate/binary name and the artifact prefix. Projects whose darwin build needs a custom driver (http-nu) pass darwin-build-script: ./scripts/cross-build-darwin.sh.

Layout

dagger.json, .dagger/main.go      the build functions (Dagger, Go SDK)
.github/workflows/
  release-binaries.yml            the reusable workflow (workflow_call)

The Dagger module is also callable directly:

dagger call -m github.com/cablehead/pipelines \
  linux-amd-64-build --src . --name my-crate --version v0.1.0 \
  export --path ./my-crate-v0.1.0-linux-amd64.tar.gz

About

Shared release pipeline: dagger cross-builds + reusable workflow

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages