version: 2 # Traefik plugins are source-only - no binary builds # Traefik loads plugins via Yaegi interpreter at runtime builds: - skip: true # Source archive for GitHub releases, built with `git archive` under the # hood. `git archive` reads .gitattributes export-ignore at the archived # commit — that is the real filter for test files and non-shipped dirs # (vendor/, tools/, integration/, docs/, examples/, testdata/, # .superpowers/, .github/); see .gitattributes at the repo root. # # An `archives:` files-list with `!glob` excludes looked equivalent but was # not: GoReleaser's archive fileglob has no negation, so every `!`-prefixed # entry was a silent no-op and the tarball shipped every file the plain # globs matched, tests and vendor included. `source:` avoids that trap # entirely because it does not use the archive fileglob at all. source: enabled: true format: tar.gz name_template: "{{ .ProjectName }}_v{{ .Version }}_source" # Extracting the tarball must land everything under one directory, not # loose at the archive root, the same way GitHub's own source tarballs # behave — without this, `tar xzf` scatters the plugin's files straight # into the extracting directory. Verified with `goreleaser release # --snapshot --clean`: the tarball's top-level entry is exactly # traefik-llmgateway_v{version}/ (v0.2 final review wave, 2026-08-20). prefix_template: "{{ .ProjectName }}_v{{ .Version }}/" checksum: name_template: "{{ .ProjectName }}_v{{ .Version }}_checksums.txt" algorithm: sha256 changelog: sort: asc filters: exclude: - "^docs:" - "^test:" - "^Merge" - "^WIP" - "^chore:" release: github: owner: lukaszraczylo name: traefik-llmgateway name_template: "v{{ .Version }}" draft: false prerelease: auto signs: - cmd: cosign signature: "${artifact}.sigstore.json" args: - sign-blob - "--bundle=${signature}" - "${artifact}" - "--yes" artifacts: checksum output: true