--- kind: pipeline type: docker name: build-arm64 platform: os: linux arch: arm64 steps: - name: frontend image: node:24-alpine commands: - cd web - npm install --network-timeout=100000 - npm run generate:api - npm run build - name: backend-commit image: golang:1-alpine commands: - apk add --no-cache git - go generate ./... - go build -tags netgo -ldflags '-w -X git.happydns.org/happyDeliver/internal/version.Version=${DRONE_BRANCH}-${DRONE_COMMIT} -X main.build=${DRONE_BUILD_NUMBER}' -o happydeliver-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} ./cmd/happyDeliver - ln happydeliver-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} happydeliver environment: CGO_ENABLED: 0 when: event: exclude: - tag - name: backend-tag image: golang:1-alpine commands: - apk add --no-cache git - go generate ./... - go build -tags netgo -ldflags '-w -X git.happydns.org/happyDeliver/internal/version.Version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -o happydeliver-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} ./cmd/happyDeliver/ - ln happydeliver-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} happydeliver environment: CGO_ENABLED: 0 when: event: - tag - name: build-commit macOS image: golang:1-alpine commands: - apk add --no-cache git - go build -tags netgo -ldflags '-w -X "git.happydns.org/happyDeliver/internal/version.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydeliver-darwin-${DRONE_STAGE_ARCH} ./cmd/happyDeliver/ environment: CGO_ENABLED: 0 GOOS: darwin GOARCH: arm64 when: event: exclude: - tag - name: build-tag macOS image: golang:1-alpine commands: - apk add --no-cache git - go build -tags netgo -ldflags '-w -X "git.happydns.org/happyDeliver/internal/version.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydeliver-darwin-${DRONE_STAGE_ARCH} ./cmd/happyDeliver/ environment: CGO_ENABLED: 0 GOOS: darwin GOARCH: arm64 when: event: - tag - name: publish on Docker Hub image: plugins/docker settings: repo: happydomain/happydeliver auto_tag: true auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} dockerfile: Dockerfile username: from_secret: docker_username password: from_secret: docker_password trigger: branch: exclude: - renovate/* event: - cron - push - tag --- kind: pipeline type: docker name: build-amd64 platform: os: linux arch: amd64 steps: - name: publish on Docker Hub image: plugins/docker settings: repo: happydomain/happydeliver auto_tag: true auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} dockerfile: Dockerfile username: from_secret: docker_username password: from_secret: docker_password trigger: branch: exclude: - renovate/* event: - cron - push - tag --- kind: pipeline name: docker-manifest platform: os: linux arch: arm64 steps: - name: publish on Docker Hub image: plugins/manifest settings: auto_tag: true ignore_missing: true spec: .drone-manifest.yml username: from_secret: docker_username password: from_secret: docker_password trigger: branch: exclude: - renovate/* event: - cron - push - tag depends_on: - build-amd64 - build-arm64