aws-mgmt-go/Taskfile.yml
2024-12-29 19:56:19 -05:00

116 lines
2.1 KiB
YAML

version: '3'
env:
GOOS:
sh: go env GOOS
GOARCH:
sh: go env GOARCH
DESTDIR: /usr/local/sbin
tasks:
default:
cmds:
- task: build-all
setup:
desc: setup directories
internal: true
cmds:
- mkdir -p bin
status:
- test -d bin
build-all:
desc: build all binaries
cmds:
- for: { var: BINARIES }
task: native-build-{{.ITEM}}
vars:
BINARY: '{{.ITEM}}'
vars:
BINARIES:
sh: ls cmd/
install-all:
desc: install all binaries
cmds:
- for: { var: BINARIES }
task: install
vars:
BINARY: '{{.ITEM}}'
vars:
BINARIES:
sh: ls cmd/
matrix-build-all:
desc: build all binaries
cmds:
- for: { var: BINARIES }
task: matrix-build-{{.ITEM}}
vars:
BINARY: '{{.ITEM}}'
vars:
BINARIES:
sh: ls cmd/
build-*:
desc: build a binary
cmd: |
GOOS={{.GOOS}} GOARCH={{.GOARCH}} go build -o bin/{{.BINARY}}_{{.GOOS}}_{{.GOARCH}} ./cmd/{{.BINARY}}
vars:
BINARY: '{{index .MATCH 0}}'
sources:
- '**/*.go'
generates:
- bin/{{.BINARY}}_{{.GOOS}}_{{.GOARCH}}
deps:
- setup
native-build-*:
desc: build a native binary
cmd: |
go build -o bin/{{.BINARY}} ./cmd/{{.BINARY}}
vars:
BINARY: '{{index .MATCH 0}}'
sources:
- '**/*.go'
generates:
- bin/{{.BINARY}}
deps:
- setup
matrix-build-*:
desc: cross compile a binary
cmds:
- for:
matrix:
GOOS: [linux, darwin]
GOARCH: [amd64, arm64]
task: build-{{.BINARY}}
vars:
GOOS: '{{.ITEM.GOOS}}'
GOARCH: '{{.ITEM.GOARCH}}'
- task: build-{{.BINARY}}
vars:
GOOS: windows
GOARCH: amd64
vars:
BINARY: '{{index .MATCH 0}}'
update:
desc: update dependencies
cmds:
- go get -u ./...
- go mod tidy
install:
desc: install a binary
cmd: |
sudo install -m 0755 bin/{{.BINARY}} $DESTDIR/{{.BINARY}}
env:
DESTDIR: /usr/local/sbin
requires:
vars: [BINARY]