version: '3' vars: REGISTRY: ghcr.io/host-uk VERSION: sh: git describe --tags --always --dirty 2>/dev/null || echo "dev" tasks: default: desc: List available tasks cmds: - task --list # ============================================================ # Build All # ============================================================ build: desc: Build all images (Docker + TIM) deps: - build:developer - build:server-php build:docker: desc: Build all Docker images deps: - build:developer:docker - build:server-php:docker build:tim: desc: Build all TIM bundles deps: - build:developer:tim - build:server-php:tim # ============================================================ # Developer Image # ============================================================ build:developer: desc: Build developer image (Docker + TIM) deps: - build:developer:docker - build:developer:tim build:developer:docker: desc: Build developer Docker image dir: developer cmds: - | docker build \ --tag {{.REGISTRY}}/core-dev:{{.VERSION}} \ --tag {{.REGISTRY}}/core-dev:latest \ --build-arg VERSION={{.VERSION}} \ . build:developer:tim: desc: Build developer TIM bundle dir: developer cmds: - echo "TODO: core build --type tim -o ../dist/core-dev-{{OS}}-{{ARCH}}.tim" push:developer: desc: Push developer image to registry cmds: - docker push {{.REGISTRY}}/core-dev:{{.VERSION}} - docker push {{.REGISTRY}}/core-dev:latest # ============================================================ # Server PHP Image # ============================================================ build:server-php: desc: Build server-php image (Docker + TIM) deps: - build:server-php:docker - build:server-php:tim build:server-php:docker: desc: Build server-php Docker image dir: server-php cmds: - | docker build \ --tag {{.REGISTRY}}/server-php:{{.VERSION}} \ --tag {{.REGISTRY}}/server-php:latest \ --build-arg VERSION={{.VERSION}} \ . build:server-php:tim: desc: Build server-php TIM bundle dir: server-php cmds: - echo "TODO: core build --type tim -o ../dist/server-php-{{OS}}-{{ARCH}}.tim" push:server-php: desc: Push server-php image to registry cmds: - docker push {{.REGISTRY}}/server-php:{{.VERSION}} - docker push {{.REGISTRY}}/server-php:latest # ============================================================ # Release # ============================================================ release: desc: Build and push all images cmds: - task: build - task: push:developer - task: push:server-php # ============================================================ # Utilities # ============================================================ clean: desc: Remove build artifacts cmds: - rm -rf dist/ - docker rmi {{.REGISTRY}}/core-dev:{{.VERSION}} || true - docker rmi {{.REGISTRY}}/server-php:{{.VERSION}} || true dist: desc: Create dist directory cmds: - mkdir -p dist status: - test -d dist