version: '3' includes: common: Taskfile.common.yml tasks: build: summary: Creates a production build of the application deps: [] #- task: common:go:mod:tidy #- task: common:build:frontend #- task: common:generate:icons cmds: - MAUTRIX_VERSION=$(cat go.mod | grep 'maunium.net/go/mautrix ' | awk '{ print $2 }') - GO_LDFLAGS="-s -w -X go.mau.fi/gomuks/version.Tag=$CI_COMMIT_TAG -X go.mau.fi/gomuks/version.Commit=$CI_COMMIT_SHA -X 'go.mau.fi/gomuks/version.BuildTime=`date -Iseconds`' -X 'maunium.net/go/mautrix.GoModVersion=$MAUTRIX_VERSION'" - go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/{{.APP_NAME}} vars: BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -trimpath{{else}}-gcflags=all="-l"{{end}}' env: GOOS: darwin CGO_ENABLED: 1 GOARCH: '{{.ARCH | default ARCH}}' CGO_CFLAGS: "-mmacosx-version-min=11.0" CGO_LDFLAGS: "-mmacosx-version-min=11.0" MACOSX_DEPLOYMENT_TARGET: "11.0" PRODUCTION: '{{.PRODUCTION | default "false"}}' package: summary: Packages a production build of the application into a `.app` bundle deps: - task: build vars: PRODUCTION: "true" cmds: - task: create:app:bundle create:app:bundle: summary: Creates an `.app` bundle cmds: - mkdir -p {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/{MacOS,Resources} - cp build/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources - cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/MacOS - cp build/Info.plist {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents run: cmds: - '{{.BIN_DIR}}/{{.APP_NAME}}'