Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

9 Commits

Repository files navigation

dcc-bigfred/common

Reusable GitHub Actions workflows and Go tools for the org. Pin workflow callers to tag v2. Pin Go tools with a semver tag (@v0.1.3 / @latest) — no clone of this repo required.

Workflows

WorkflowPurpose
rust-musl-ci.ymlfmt, clippy, test, musl arm64+amd64, upload binaries-{arch}
rust-release.ymlWait for CI → optional ELF inject (go run) → GitHub Release assets
ci.ymlGo test/vet/build + shellcheck

Caller example (micronet)

# .github/workflows/ci.ymljobs:
ci:
permissions:
contents: readuses: dcc-bigfred/common/.github/workflows/rust-musl-ci.yml@v2with:
binaries: | [ {"name":"configure-dhcp","dist":"configure-dhcp-linux"}, {"name":"configure-ethernet","dist":"configure-ethernet-linux"} ]# .github/workflows/release.ymljobs:
release:
permissions:
contents: writeuses: dcc-bigfred/common/.github/workflows/rust-release.yml@v2with:
elf_binaries: configure-dhcp-linux-arm64,configure-ethernet-linux-arm64elf_section: .micronet.versionsecrets: inherit

Go tools

cmd/fetch

go run github.com/dcc-bigfred/common/cmd/fetch@latest \
--repo=dcc-bigfred/micronet \
--artifact=binaries-arm64 \
--files='configure-dhcp-linux-arm64:bin/configure-dhcp,configure-ethernet-linux-arm64:bin/configure-ethernet' \
main /tmp/out.tar

Tip refs (main/master/sha-*) → Actions artifact (token required). latest-release / v* → GitHub Release assets.

Token env: BIGFRED_NATIVE_TOKEN / GH_TOKEN / GITHUB_TOKEN.

cmd/inject-elf-version

go run github.com/dcc-bigfred/common/cmd/inject-elf-version@latest \
path/to/binary v1.2.3 abc1234 .micronet.version

Requires objcopy (binutils). Writes JSON {"version":"…","commit":"…"} into the named ELF section (section name must start with .).

cmd/minisign-sign

go run github.com/dcc-bigfred/common/cmd/minisign-sign@latest \
release-assets/foo-linux-arm64

Requires minisign on PATH. Env: MINISIGN_SECRET_KEY (required), MINISIGN_PASSWORD (optional), MINISIGN_PUBLIC_KEY (default ./minisign.pub). Signs each file to <file>.minisig and verifies against the public key (fail-closed).

Out of scope

  • microinit distroless / Docker image publish (stays in microinit repo)
  • ORAS / GHCR binary distribution (removed in v2)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages