diff --git a/.gitignore b/.gitignore index d852eda..2ad83ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,9 @@ -node-lookup +# built binaries (repo root only — not the cmd/ source dirs) +/node-lookup +/pburl +/pblastreport +# cross-compiled release artifacts (e.g. node-lookup-linux-amd64) +/node-lookup-* +/pburl-* +/pblastreport-* dist/ diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml index 14a24ef..040441c 100644 --- a/.woodpecker/release.yaml +++ b/.woodpecker/release.yaml @@ -17,16 +17,22 @@ steps: memory: 2Gi cpu: 2 - # Build the linux/amd64 binary into dist/ (consumed by the RPM step) plus the - # cross-platform binaries attached to the Gitea release. + # Build all binaries into dist/ (consumed by the RPM step) plus the + # cross-platform binaries attached to the Gitea release. Each tool is a + # separate main package, so they are built individually per os/arch. - name: build image: git.unkin.net/unkin/almalinux9-gobuilder:20260606 commands: - make build VERSION=${CI_COMMIT_TAG} - - GOOS=linux GOARCH=amd64 go build -ldflags="-s -w -X main.version=${CI_COMMIT_TAG}" -o node-lookup-linux-amd64 ./... - - GOOS=linux GOARCH=arm64 go build -ldflags="-s -w -X main.version=${CI_COMMIT_TAG}" -o node-lookup-linux-arm64 ./... - - GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w -X main.version=${CI_COMMIT_TAG}" -o node-lookup-darwin-amd64 ./... - - GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w -X main.version=${CI_COMMIT_TAG}" -o node-lookup-darwin-arm64 ./... + - | + for entry in "node-lookup:." "pburl:./cmd/pburl" "pblastreport:./cmd/pblastreport"; do + name="${entry%%:*}"; pkg="${entry##*:}" + for osarch in linux/amd64 linux/arm64 darwin/amd64 darwin/arm64; do + GOOS="${osarch%/*}" GOARCH="${osarch#*/}" \ + go build -ldflags="-s -w -X main.version=${CI_COMMIT_TAG}" \ + -o "${name}-${osarch%/*}-${osarch#*/}" "${pkg}" + done + done depends_on: [test] backend_options: kubernetes: @@ -113,6 +119,14 @@ steps: node-lookup-linux-arm64 \ node-lookup-darwin-amd64 \ node-lookup-darwin-arm64 \ + pburl-linux-amd64 \ + pburl-linux-arm64 \ + pburl-darwin-amd64 \ + pburl-darwin-arm64 \ + pblastreport-linux-amd64 \ + pblastreport-linux-arm64 \ + pblastreport-darwin-amd64 \ + pblastreport-darwin-arm64 \ --login gitea --repo "${CI_REPO}" depends_on: [upload-rpm] backend_options: diff --git a/AGENTS.md b/AGENTS.md index 4cfa2ff..57321bf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,22 +2,39 @@ ## Project Overview -`node-lookup` is a Go CLI tool that queries a PuppetDB API to retrieve and filter node facts. +This repo ships three related Puppet CLIs in one RPM: + +- **`node-lookup`** — queries the PuppetDB API to retrieve and filter node facts. +- **`pburl`** — prints the Puppetboard node-page URL for each host (reads hosts + from args or piped `node-lookup` output). Output: ` `. +- **`pblastreport`** — prints each host's last Puppet report time and its + Puppetboard URL. Output: `\t