ci / ci (pull_request) Successful in 3m11s
Co-authored-by: Claude <noreply@anthropic.com>
48 lines
1.5 KiB
YAML
48 lines
1.5 KiB
YAML
# Pull-request validation for Crucible. Releases and wrapper synchronization
|
|
# have their own narrow workflows because they need tag/main events.
|
|
name: ci
|
|
|
|
on:
|
|
pull_request:
|
|
|
|
permissions: read-all
|
|
|
|
jobs:
|
|
ci:
|
|
runs-on: nix-docker
|
|
timeout-minutes: 60
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: vet + test + lint
|
|
run: |
|
|
nix develop --command bash -c '
|
|
set -euo pipefail
|
|
go vet ./...
|
|
go test ./...
|
|
shellcheck scripts/*.sh
|
|
yamllint .gitea
|
|
'
|
|
|
|
- name: binary smoke (fail-closed contract)
|
|
run: nix develop --command make smoke
|
|
|
|
- name: Cross-build all targets
|
|
run: |
|
|
nix develop --command bash -c '
|
|
set -euo pipefail
|
|
sha="$(git rev-parse --short=12 HEAD)"
|
|
ldflags="-s -w -X git.westgate.pw/ShadowsOverWestgate/sow-tools/internal/buildinfo.Version=${sha}"
|
|
rm -rf dist && mkdir -p dist
|
|
export CGO_ENABLED=0
|
|
for target in linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64 windows/arm64; do
|
|
os="${target%/*}"; arch="${target#*/}"
|
|
ext=""; [ "$os" = windows ] && ext=".exe"
|
|
echo "building crucible-${os}-${arch}${ext}"
|
|
GOOS="$os" GOARCH="$arch" go build -trimpath -ldflags "$ldflags" \
|
|
-o "dist/crucible-${os}-${arch}${ext}" ./cmd/crucible
|
|
done
|
|
'
|