1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2026-04-26 20:05:31 +02:00
Files
goreleaser/Taskfile.yml
Carlos Alexandro Becker 1171390511 docs: regenerate favicons with transparent background (#6521)
Favicons were missing the alpha channel

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-03 10:42:39 -03:00

342 lines
9.5 KiB
YAML

# https://taskfile.dev
version: "3"
env:
GO111MODULE: on
GOPROXY: https://proxy.golang.org,direct
tasks:
dev:
desc: Setup git hooks
cmds:
- cp -f scripts/pre-commit.sh .git/hooks/pre-commit
setup:
desc: Install dependencies
cmds:
- go mod tidy
docker:setup:
desc: Setup Docker for multi-arch image builds
cmds:
- "docker buildx create --name=goreleaser --driver-opt network=host --use || true"
- docker run --privileged --rm tonistiigi/binfmt --install all
build:
desc: Build the binary
sources:
- ./**/*.go
generates:
- ./goreleaser
cmds:
- go build
test:
desc: Run tests
env:
LC_ALL: C
vars:
TEST_OPTIONS: '{{default "" .TEST_OPTIONS}}'
SOURCE_FILES: '{{default "./..." .SOURCE_FILES}}'
TEST_PATTERN: '{{default "." .TEST_PATTERN}}'
cmds:
- go test {{.TEST_OPTIONS}} -failfast -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt {{.SOURCE_FILES}} -run {{.TEST_PATTERN}} -timeout=15m
fuzz:tmpl:
cmds:
- scripts/fuzz.sh ./internal/tmpl 30s
fuzz:artifact:
cmds:
- scripts/fuzz.sh ./internal/artifact 30s
fuzz:
desc: Run fuzz tests
cmds:
- task: fuzz:tmpl
- task: fuzz:artifact
test:golden:update:
desc: Run all tests that write goldne files, updating the files.
sources:
- ./pkg/config/*.go
- ./pkg/context/*.go
cmds:
- ./scripts/test-golden.sh
cover:
desc: Open the cover tool
cmds:
- go tool cover -html=coverage.txt
fmt:
desc: gofumpt all code
cmds:
- gofumpt -w -l .
lint:
desc: Lint the code with golangci-lint
cmds:
- golangci-lint run --tests --timeout 10m --fix --config ./.golangci.yaml ./...
ci:
desc: Run all CI steps
cmds:
- task: setup
- task: build
- task: test
default:
desc: Runs the default tasks
cmds:
- task: ci
nix:licenses:generate:
desc: Generate nix/licenses.go
cmds:
- ./scripts/gen-nix-licenses.sh
generates:
- ./internal/pipe/nix/licenses.go
schema:generate:
desc: Generate JSONSchema
cmds:
- go run . schema -o ./www/static/schema.json
sources:
- pkg/config/config.go
generates:
- ./www/static/schema.json
schema:validate:
desc: Validate JSONSchema
cmds:
- jv ./www/static/schema.json
sources:
- ./www/static/schema.json
docs:generate:
desc: Generate docs
cmds:
- scripts/copy-doc.sh CONTRIBUTING.md www/content/resources/contributing.md
- scripts/copy-doc.sh USERS.md www/content/resources/users.md
- scripts/copy-doc.sh EULA.md www/content/resources/eula.md
- scripts/copy-doc.sh SECURITY.md www/content/resources/security.md
sources:
- CONTRIBUTING.md
- USERS.md
- EULA.md
- SECURITY.md
generates:
- www/content/resources/contributing.md
- www/content/resources/users.md
- www/content/resources/eula.md
- www/content/resources/security.md
docs:sponsors:
desc: Update OpenCollective and GitHub sponsors list
cmds:
- which sponsors || go install github.com/goreleaser/sponsors@main
- sponsors generate --config gh://goreleaser/.github/sponsors.yml sponsors.json
- sponsors apply sponsors.json gh://goreleaser/.github/sponsors.tpl.md ./README.md
- sponsors apply sponsors.json ./.github/templates/sponsors.tpl.md ./www/content/sponsors.md
- sponsors apply sponsors.json ./.github/templates/index.tpl.html ./www/layouts/index.html
sources:
- ./README.md
- ./www/content/sponsors.md
- ./www/layouts/index.html
- ./.github/sponsors/sponsors.json
- ./.github/sponsors/sponsors.yml
generates:
- ./README.md
- ./www/content/sponsors.md
- ./www/layouts/index.html
- ./.github/sponsors/sponsors.json
docs:releases:
desc: Generate releases.json and latest files
cmds:
- ./scripts/get-releases.sh
generates:
- www/static/releases.json
- www/static/releases-pro.json
- www/static/latest
- www/static/latest-pro
docs:imgs:
desc: Download and resize images
cmds:
- wget -O www/static/favicon.svg https://raw.githubusercontent.com/goreleaser/artwork/refs/heads/master/goreleaser.svg
- wget -O www/static/card.png https://raw.githubusercontent.com/goreleaser/artwork/master/twitter-card.png
- wget -O www/static/hero.png https://raw.githubusercontent.com/goreleaser/artwork/master/hero.png
- convert -background none www/static/favicon.svg -define icon:auto-resize=64,48,32,16 www/static/favicon.ico
- convert -background none www/static/favicon.svg -resize 16x16 -depth 8 www/static/favicon-16x16.png
- convert -background none www/static/favicon.svg -resize 32x32 -depth 8 www/static/favicon-32x32.png
- convert -background none www/static/favicon.svg -resize x120 -depth 8 www/static/apple-touch-icon.png
- convert -background none www/static/favicon.svg -resize 192x192 -depth 8 www/static/android-chrome-192x192.png
- convert -background none www/static/favicon.svg -resize 512x512 -depth 8 www/static/android-chrome-512x512.png
docs:serve:
desc: Start documentation server
cmds:
- task: docs:generate
- cd www && hugo server --buildDrafts --bind 0.0.0.0
docs:build:
desc: Build docs
sources:
- ./www/content/
- ./www/hugo.yaml
generates:
- ./www/public
cmds:
- task: docs:generate
- cd www && hugo --minify
docs:test:
desc: Test docs with htmltest
cmds:
- task: docs:generate
- cd www && hugo --minify --baseURL "/"
- htmltest www/public -c www/htmltest.yml
release:
desc: Create a new tag
vars:
NEXT:
sh: svu n
prompt: "This will release {{.NEXT}}. Continue?"
preconditions:
- sh: '[ $(git symbolic-ref --short HEAD) = "main" ]'
msg: Not on main branch
- sh: "[ $(git status --porcelain=2 | wc -l) = 0 ]"
msg: "Git is dirty"
cmds:
- git tag -d nightly
- git tag {{.NEXT}}
- echo {{.NEXT}}
- git push origin --tags
release:watch:
vars:
RUN_ID:
sh: "gh run list --workflow=release.yml --limit 1 --json databaseId | jq -r '.[] | .databaseId'"
cmds:
- gh run watch {{.RUN_ID}}
goreleaser:test:pkg:
desc: Test a package
cmds:
- docker pull --platform linux/{{.Platform}} {{.Image}}
- docker run --platform linux/{{.Platform}} --rm --workdir /tmp -v $PWD/dist:/tmp {{.Image}} sh -c '{{.Cmd}} && goreleaser --version'
goreleaser:test:rpm:
desc: Tests rpm packages
vars:
rpm: "rpm --nodeps -ivh"
cmds:
- task: goreleaser:test:pkg
vars:
Platform: "386"
Image: centos:centos7
Cmd: "{{.rpm}} goreleaser-*.i386.rpm"
- task: goreleaser:test:pkg
vars:
Platform: "amd64"
Image: fedora
Cmd: "{{.rpm}} goreleaser-*.x86_64.rpm"
- task: goreleaser:test:pkg
vars:
Platform: "arm64"
Image: fedora
Cmd: "{{.rpm}} goreleaser-*.aarch64.rpm"
goreleaser:test:deb:
desc: Tests deb packages
vars:
dpkg: "dpkg --ignore-depends=git -i"
cmds:
- task: goreleaser:test:pkg
vars:
Platform: "amd64"
Image: ubuntu
Cmd: "{{.dpkg}} goreleaser*_amd64.deb"
- task: goreleaser:test:pkg
vars:
Platform: "arm64"
Image: ubuntu
Cmd: "{{.dpkg}} goreleaser*_arm64.deb"
- task: goreleaser:test:pkg
vars:
Platform: "arm/7"
Image: ubuntu
Cmd: "{{.dpkg}} goreleaser*_armhf.deb"
goreleaser:test:apk:
desc: Tests apk packages
vars:
apk: "apk add --allow-untrusted -U"
cmds:
- task: goreleaser:test:pkg
vars:
Platform: "386"
Image: alpine
Cmd: "{{.apk}} goreleaser*_x86.apk"
- task: goreleaser:test:pkg
vars:
Platform: "amd64"
Image: alpine
Cmd: "{{.apk}} goreleaser*_x86_64.apk"
- task: goreleaser:test:pkg
vars:
Platform: "arm64"
Image: alpine
Cmd: "{{.apk}} goreleaser*_aarch64.apk"
- task: goreleaser:test:pkg
vars:
Platform: "arm/7"
Image: alpine
Cmd: "{{.apk}} goreleaser*_armv7.apk"
goreleaser:test:
desc: Test built linux packages
cmds:
- task: goreleaser:test:apk
- task: goreleaser:test:deb
- task: goreleaser:test:rpm
goreleaser:
desc: Run GoReleaser either in snapshot or release mode
deps:
- build
vars:
SNAPSHOT:
sh: 'if [[ $GITHUB_REF != refs/tags/v* ]]; then echo "--snapshot"; fi'
cmds:
- ./goreleaser release --clean --timeout 60m {{.SNAPSHOT}}
nightly:watch:
vars:
RUN_ID:
sh: "gh run list --workflow=nightly-oss.yml --limit 1 --json databaseId | jq -r '.[] | .databaseId'"
cmds:
- gh run watch {{.RUN_ID}}
nightly:
cmds:
- gh run list --workflow=nightly-oss.yml
- gh workflow run nightly-oss.yml
- sleep 5
- task: nightly:watch
licenses:check:
cmds:
- |
go run github.com/google/go-licenses/v2@latest check \
--allowed_licenses=MIT,Apache-2.0,BSD-3-Clause,BSD-2-Clause,ISC,MPL-2.0 \
--ignore github.com/in-toto \
--ignore github.com/multiformats/go-base36 \
--ignore github.com/ipfs/bbloom \
--ignore github.com/cyberphone/json-canonicalization/go/src/webpki.org/jsoncanonicalizer \
./...