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