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 silent: true ignore_error: true - cmd: docker image rm listen-build silent: true ignore_error: true