Skip to content

deps: pin macula-go to the tagged v0.4.0 #36

deps: pin macula-go to the tagged v0.4.0

deps: pin macula-go to the tagged v0.4.0 #36

Workflow file for this run

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
}