github.com/goreleaser/nfpm/v2@v2.44.0/Taskfile.yml (about) 1 # https://taskfile.dev 2 3 version: "3" 4 5 env: 6 GO111MODULE: on 7 GOPROXY: https://proxy.golang.org,direct 8 9 tasks: 10 dev: 11 desc: Setup git hooks 12 cmds: 13 - git config core.hooksPath .githooks 14 15 setup: 16 desc: Install dependencies 17 cmds: 18 - go mod tidy 19 20 docker:setup: 21 desc: Setup Docker for multi-arch image builds 22 cmds: 23 - docker run --privileged --rm tonistiigi/binfmt --install all 24 25 build: 26 desc: Build the binary 27 sources: 28 - ./**/*.go 29 generates: 30 - ./nfpm 31 cmds: 32 - go build ./cmd/nfpm 33 34 acceptance:windows:package: 35 desc: Build packages for testing 36 vars: 37 SRC: "./testdata/acceptance/core.complex.yaml" 38 cmds: 39 - mkdir -p ./dist 40 - go run ./cmd/nfpm/... pkg -f {{.SRC}} -p deb -t ./dist/foo.deb 41 - go run ./cmd/nfpm/... pkg -f {{.SRC}} -p rpm -t ./dist/foo.rpm 42 - go run ./cmd/nfpm/... pkg -f {{.SRC}} -p apk -t ./dist/foo.apk 43 - go run ./cmd/nfpm/... pkg -f {{.SRC}} -p archlinux -t ./dist/foo.pkg.tar.zst 44 45 acceptance:windows:install: 46 desc: Install packages built with package 47 cmds: 48 - docker run --rm --workdir /tmp -v $PWD/dist:/tmp fedora rpm -ivh foo.rpm 49 - docker run --rm --workdir /tmp -v $PWD/dist:/tmp ubuntu dpkg -i foo.deb 50 - docker run --rm --workdir /tmp -v $PWD/dist:/tmp archlinux pacman --noconfirm -U foo.pkg.tar.zst 51 - docker run --rm --workdir /tmp -v $PWD/dist:/tmp alpine apk add --allow-untrusted foo.apk 52 53 acceptance:pull: 54 desc: Pull acceptance test images 55 vars: 56 IMGS: 57 sh: grep FROM ./testdata/acceptance/*.dockerfile | cut -f2 -d' ' | grep -v min | grep -v test | sort | uniq 58 cmds: 59 - echo "{{.IMGS}}" | while read -r img; do docker pull $img; done 60 61 acceptance: 62 desc: Run acceptance tests 63 env: 64 LC_ALL: C 65 vars: 66 TEST_OPTIONS: '{{default "" .TEST_OPTIONS}}' 67 TEST_PATTERN: '{{default "." .TEST_PATTERN}}' 68 cmds: 69 - go test {{.TEST_OPTIONS}} -tags=acceptance -p 4 -failfast -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt acceptance_test.go -run {{.TEST_PATTERN}} -timeout=1h 70 71 test: 72 desc: Run unit tests 73 env: 74 LC_ALL: C 75 vars: 76 TEST_OPTIONS: '{{default "" .TEST_OPTIONS}}' 77 SOURCE_FILES: '{{default "./..." .SOURCE_FILES}}' 78 TEST_PATTERN: '{{default "." .TEST_PATTERN}}' 79 cmds: 80 - go test {{.TEST_OPTIONS}} -failfast -race -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt {{.SOURCE_FILES}} -run {{.TEST_PATTERN}} -timeout=5m 81 82 cover: 83 desc: Open the cover tool 84 cmds: 85 - go tool cover -html=coverage.txt 86 87 fmt: 88 desc: gofumpt all code 89 cmds: 90 - gofumpt -w -l . 91 92 ci: 93 desc: Run all CI steps 94 cmds: 95 - task: setup 96 - task: build 97 - task: test 98 - task: acceptance 99 100 default: 101 desc: Runs the default tasks 102 cmds: 103 - task: ci 104 105 schema:generate: 106 desc: Generate JSONSchema 107 cmds: 108 - go run ./cmd/nfpm/ schema -o ./www/static/schema.json 109 sources: 110 - nfpm.go 111 generates: 112 - ./www/static/schema.json 113 114 schema:validate: 115 desc: Validate JSONSchema 116 cmds: 117 - jv ./www/static/schema.json ./testdata/acceptance/*.yaml 118 sources: 119 - ./www/static/schema.json 120 - ./testdata/acceptance/*.yaml 121 122 docs:generate: 123 desc: Generate docs 124 cmds: 125 - ./scripts/cmd_docs.sh 126 sources: 127 - cmd/*.go 128 - files/*.go 129 - ./scripts/cmd_docs.sh 130 - CONTRIBUTING.md 131 generates: 132 - www/content/docs/cmd/*.md 133 - www/content/docs/contributing.md 134 135 docs:releases: 136 desc: Generate the latest file 137 cmds: 138 - ./scripts/pages/releases.sh 139 generates: 140 - www/static/latest 141 142 docs:imgs: 143 desc: Download and resize images 144 cmds: 145 - wget -O www/static/logo.png https://github.com/goreleaser/artwork/raw/master/goreleaserfundo.png 146 - wget -O www/static/favicon.svg https://raw.githubusercontent.com/goreleaser/artwork/refs/heads/master/goreleaser.svg 147 - convert www/static/logo.png -define icon:auto-resize=64,48,32,16 www/static/favicon.ico 148 - convert www/static/logo.png -resize x120 www/static/apple-touch-icon.png 149 - convert www/static/logo.png -resize x192 www/static/android-chrome-192x192.png 150 - convert www/static/logo.png -resize x512 www/static/android-chrome-512x512.png 151 - convert www/static/logo.png -resize x16 www/static/favicon-16x16.png 152 - convert www/static/logo.png -resize x32 www/static/favicon-32x32.png 153 154 docs:serve: 155 desc: Start documentation server 156 cmds: 157 - task: docs:generate 158 - cd www && hugo server --buildDrafts --bind 0.0.0.0 --port 8080 159 160 docs:build: 161 desc: Build docs 162 cmds: 163 - task: docs:generate 164 - cd www && hugo --minify 165 166 docs:test: 167 desc: Test docs with htmltest 168 cmds: 169 - task: docs:build 170 - htmltest www/public -c www/htmltest.yml 171 172 release: 173 desc: Create a new tag 174 vars: 175 NEXT: 176 sh: svu n 177 cmds: 178 - git tag {{.NEXT}} 179 - echo {{.NEXT}} 180 - git push origin --tags 181 182 nix:flake:update-vendor: 183 desc: update default flake package vendor hash 184 cmds: 185 - bash ./scripts/nix-update-flake.sh 186 generates: 187 - flake.nix 188 sources: 189 - flake.lock 190 - go.mod 191 - go.sum