listen/Taskfile.yml

56 lines
1.5 KiB
YAML

version: '3'
vars:
UNAME:
sh: uname
DOCKER_EXE: /usr/src/listen/out/{{OS}}/listen
tasks:
default:
deps:
- build:go
build:go:
aliases:
- build
cmds:
- "go build -o out/{{OS}}/ ."
preconditions:
- sh: "which go"
msg: Go is not installed. Install Go or build with Docker using the "docker" task
build:docker:
aliases:
- docker
cmds:
- task: build:docker:dockercli
- "docker build -t listen-build -f docker/build.Dockerfile --build-arg GOOS='{{OS}}' --build-arg GOARCH='{{ARCH}}' ."
- "mkdir -p out/{{OS}}"
- "docker create --name listen-build-tmp listen-build"
- cmd: "docker cp listen-build-tmp:{{.DOCKER_EXE}}.exe out/{{OS}}/"
platforms:
- windows
- cmd: "docker cp listen-build-tmp:{{.DOCKER_EXE}} out/{{OS}}/"
platforms:
- darwin
- linux
- "docker rm listen-build-tmp"
preconditions:
- sh: "uname | grep -qe Linux -e MINGW -e Darwin"
msg: "This task cannot be ran on OS: {{OS}}"
- sh: "which docker"
msg: Docker is not installed. Install Docker or build with Go using the "build" task
build:docker:dockercli:
cmds:
- cmd: '"C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchLinuxEngine'
platforms:
- windows
clean:
cmds:
- rm -rf out/
- cmd: docker rm listen-build-tmp
ignore_error: true
- cmd: docker image rm listen-build
ignore_error: true