deps: pin macula-go to the tagged v0.4.0 #36
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: [master] | |
| pull_request: | |
| jobs: | |
| fmt: | |
| name: gofmt | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - run: test -z "$(gofmt -l .)" | |
| vet: | |
| name: go vet | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - run: go vet ./... | |
| build: | |
| name: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - run: go build ./... | |
| test: | |
| name: go test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| # Almost every command in this repo talks to a live macula-station by | |
| # design (it's a diagnostic tool for the real mesh, not a library), so | |
| # most verification stays "run it against the fleet" -- but three | |
| # offline test files exist for the pieces that don't touch the mesh at | |
| # all (cmd/macula-cli's identity/call flag parsing, internal/daemon's | |
| # local control-socket protocol), and plain `go test ./...` already | |
| # excludes every `//go:build live` file (internal/daemon's own | |
| # register_direct_live_test.go, which needs a real station and | |
| # MACULA_LIVE_STATION) -- nothing extra to gate here. | |
| - run: go test ./... | |
| goreleaser-check: | |
| name: goreleaser build (snapshot) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - uses: goreleaser/goreleaser-action@v6 | |
| with: | |
| distribution: goreleaser | |
| version: "~> v2" | |
| # Builds every OS/arch combo and packages the archives, same | |
| # as a real release, without publishing anything — catches a | |
| # broken .goreleaser.yml (or a build that only fails cross- | |
| # compiled) before it's discovered at actual release time. | |
| args: release --snapshot --clean | |
| shellcheck: | |
| name: shellcheck install.sh | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ludeeus/action-shellcheck@master | |
| with: | |
| scandir: "." | |
| ignore_paths: dist | |
| powershell-parse: | |
| name: parse-check install.ps1 / uninstall.ps1 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Syntax-only validation — actually running install.ps1 would need | |
| # a real published release to download against, which isn't | |
| # available in this job. Catches the class of error a typo/paren | |
| # mismatch would cause without needing network access. | |
| - shell: pwsh | |
| run: | | |
| $allErrors = @() | |
| foreach ($f in @("install.ps1", "uninstall.ps1")) { | |
| $errors = $null | |
| [System.Management.Automation.Language.Parser]::ParseFile($f, [ref]$null, [ref]$errors) | Out-Null | |
| $allErrors += $errors | |
| } | |
| if ($allErrors.Count -gt 0) { | |
| $allErrors | ForEach-Object { Write-Error $_ } | |
| exit 1 | |
| } |