Skip to content

shadowfork: dbfork mutation engine + LevelDB/RocksDB e2e #39

shadowfork: dbfork mutation engine + LevelDB/RocksDB e2e

shadowfork: dbfork mutation engine + LevelDB/RocksDB e2e #39

name: GoReleaser Snapshot
# Smoke-tests the goreleaser pipeline on every PR that touches the
# .goreleaser.yaml or release-related Go files. Catches manifest
# typos, missing dependencies, and dockers_v2 schema drift before
# a real tag pushes them to production.
#
# Skips publishing — only generates artifacts to dist/ and validates
# they're produced. Asserts every advertised artifact format
# (binary, deb, rpm, brew, docker) materialised.
on:
pull_request:
paths:
- ".goreleaser.yaml"
- ".goreleaser.yml"
- "main.go"
- "cmd/**"
- "go.mod"
- "go.sum"
permissions:
contents: read
jobs:
snapshot:
name: goreleaser --snapshot
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version: "1.25"
cache: true
- uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: latest
# Skip docker too — building images in a snapshot smoke is
# noisy (depends on the binary layout produced by goreleaser
# itself, which can drift between versions) and doesn't add
# signal beyond the artifact-exists checks below. Docker
# builds run in the real release pipeline.
args: release --snapshot --clean --skip=publish,sign,docker
- name: Inspect dist/
run: |
ls -la dist/
ls -la dist/*-snapshot/ 2>/dev/null || true
- name: Assert advertised artifacts exist
# goreleaser names archives as `<binary>_<version>_<os>_<arch>.<ext>`
# with underscores (its default name_template), not hyphens.
# Each format below is in goreleaser.yaml; if removed, drop
# from the matrix here at the same time.
run: |
set -e
fail=0
want_globs=(
'dist/*_linux_amd64.tar.gz'
'dist/*_linux_arm64.tar.gz'
'dist/*_darwin_amd64.tar.gz'
'dist/*_darwin_arm64.tar.gz'
'dist/*.deb'
'dist/*.rpm'
'dist/*.apk'
'dist/checksums.txt'
'dist/homebrew/*.rb'
)
for g in "${want_globs[@]}"; do
files=( $g )
if [ ! -e "${files[0]}" ]; then
echo "::error::missing artifact pattern $g"
fail=1
else
echo "✓ found ${files[0]}"
fi
done
exit $fail
- name: Upload artifacts (debug)
if: failure()
uses: actions/upload-artifact@v4
with:
name: dist-snapshot
path: dist/