fix(repo): trust bare storage protected worktree #149
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out source | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Verify formatting | |
| run: test -z "$(gofmt -l .)" | |
| - name: Lint | |
| run: go vet ./... | |
| - name: Test | |
| run: go test ./... | |
| - name: Invariant suite | |
| run: make test-invariants | |
| - name: Stress suite | |
| run: make test-stress | |
| - name: Short soak summary | |
| run: ./scripts/run-soak.sh --runs 3 --output artifacts/soak-ci | |
| - name: Short randomized soak summary | |
| run: ./scripts/run-soak.sh --randomized --runs 2 --seed-base 20260331 --output artifacts/soak-randomized-ci | |
| - name: Release script regression test | |
| run: ./scripts/test-build-release.sh | |
| - name: Homebrew formula generation test | |
| run: | | |
| ./scripts/build-release.sh --version v0.0.0-ci --output dist | |
| ./scripts/generate-homebrew-formula.sh --version v0.0.0-ci --checksums dist/SHA256SUMS --output dist/mainline.rb | |
| ruby -c dist/mainline.rb | |
| - name: Release manifest generation test | |
| run: | | |
| ./scripts/generate-release-manifest.sh --version v0.0.0-ci --checksums dist/SHA256SUMS --output dist/release-manifest.json | |
| python3 - <<'PY' | |
| import json | |
| data = json.load(open("dist/release-manifest.json")) | |
| assert data["version"] == "v0.0.0-ci" | |
| assert len(data["assets"]) == 6 | |
| assert all(item["url"].startswith("https://github.com/recallnet/mainline/releases/download/v0.0.0-ci/") for item in data["assets"]) | |
| assert data["versioned_homebrew_formula_url"].endswith("/mainline_v0.0.0-ci.rb") | |
| assert data["versioned_manifest_url"].endswith("/release-manifest_v0.0.0-ci.json") | |
| assert data["package_bundle_url"].endswith("/mainline_packages_v0.0.0-ci.tar.gz") | |
| PY | |
| - name: Versioned package release asset test | |
| run: | | |
| ./scripts/package-release-assets.sh --version v0.0.0-ci --dist dist | |
| test -f dist/mainline_v0.0.0-ci.rb | |
| test -f dist/release-manifest_v0.0.0-ci.json | |
| test -f dist/mainline_packages_v0.0.0-ci.tar.gz | |
| tar -tzf dist/mainline_packages_v0.0.0-ci.tar.gz > dist/mainline_packages_v0.0.0-ci.list | |
| grep -q 'mainline_packages_v0.0.0-ci/mainline_v0.0.0-ci.rb$' dist/mainline_packages_v0.0.0-ci.list | |
| - name: Release build | |
| run: make release-snapshot VERSION=ci | |
| - name: GoReleaser config check | |
| run: make goreleaser-check |