Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/release-config-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,3 +178,49 @@ jobs:
echo "Checking for Docker image artifacts..."
ls -la dist/ | grep -E "docker|image" || true
echo "GoReleaser Docker build validation successful"

homebrew-cask-audit:
name: Audit Generated Homebrew Cask
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.25'
cache: true

- name: Generate cask with GoReleaser snapshot
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: '~> v2'
args: release --snapshot --clean --skip=publish,docker

- name: Verify cask was generated
run: |
echo "Checking for generated cask..."
ls -la dist/homebrew/Casks/
test -f dist/homebrew/Casks/dsops.rb || (echo "Cask not generated" && exit 1)
echo "Generated cask contents:"
cat dist/homebrew/Casks/dsops.rb

- name: Audit generated cask
run: |
# Create a local tap with the generated cask
# (brew audit requires a tap name, not a file path)
TAP_PATH="$(brew --repository)/Library/Taps/local/homebrew-dsops-test"
mkdir -p "$TAP_PATH/Casks"
cp dist/homebrew/Casks/dsops.rb "$TAP_PATH/Casks/"

# Run brew audit on the cask by tap name
# Skip checks that fail for snapshot builds (URLs don't exist yet)
brew audit --cask "local/dsops-test/dsops" \
--except=cask_checksum_mismatch \
--except=cask_download_url_not_found \
--except=cask_download_url
echo "Homebrew cask audit passed!"
3 changes: 0 additions & 3 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,6 @@ homebrew_casks:
homepage: "https://github.com/systmms/dsops"
description: "Secret management for development and production environments"
skip_upload: auto # Skip for pre-releases
Comment on lines 98 to 100
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The corresponding spec file at specs/020-release-distribution/contracts/goreleaser.yaml still contains the verified field (lines 103-104) that was removed here. The spec documentation should be updated to match the actual implementation to maintain consistency.

Copilot uses AI. Check for mistakes.
# URL verification for homebrew audit
url:
verified: github.com/systmms/dsops
# Shell completions
completions:
bash: "completions/dsops.bash"
Expand Down
6 changes: 6 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
# Build tools
gnumake
git
# goreleaser installed via go install for latest version (see shellHook)

# Provider CLI tools for integration (install separately if needed)
# _1password-cli
Expand Down Expand Up @@ -86,6 +87,11 @@
go install golang.org/x/vuln/cmd/govulncheck@latest
fi

if ! command -v goreleaser &> /dev/null; then
echo "📦 Installing goreleaser..."
go install github.com/goreleaser/goreleaser/v2@latest

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The go install path for GoReleaser is incorrect. The GoReleaser module path does not include /v2, so the current command will fail. To fix this, you should use the correct module path github.com/goreleaser/goreleaser@latest.

              go install github.com/goreleaser/goreleaser@latest

fi

echo "🔐 dsops development environment activated"
echo ""
echo "Available commands:"
Expand Down
4 changes: 4 additions & 0 deletions lefthook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,7 @@ pre-commit:
mod-tidy-check:
glob: "{**/*.go,go.mod,go.sum}"
run: make mod-tidy-check
goreleaser-check:
glob: ".goreleaser.yml"
run: goreleaser check
fail_text: "GoReleaser config validation failed"
3 changes: 0 additions & 3 deletions specs/020-release-distribution/contracts/goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,6 @@ homebrew_casks:
homepage: "https://github.com/systmms/dsops"
description: "Secret management for development and production environments"
skip_upload: auto # Skip for pre-releases
# URL verification for homebrew audit
url:
verified: github.com/systmms/dsops
# Shell completions
completions:
bash: "completions/dsops.bash"
Expand Down