# Woodpecker CI: typecheck + tests on every push/PR, container images on main and ci (tags: short SHA and branch name). # # Required secrets (Repository settings -> Secrets): # registry_username, registry_password # Images are built with kaniko: no privileged mode / Trusted flag needed. # variables: - &node_image 'node:22-alpine' - &kaniko 'woodpeckerci/plugin-kaniko:latest' - ®istry 'git.aggtaa.com' - &publish_when - event: push branch: [main, ci] steps: - name: check image: *node_image commands: - corepack enable - pnpm install --frozen-lockfile - pnpm typecheck - pnpm test when: - event: [push, pull_request] - name: image-server-be image: *kaniko depends_on: [check] settings: registry: *registry repo: ${CI_REPO_OWNER}/cardy-server-be dockerfile: docker/server-be.Dockerfile context: . tags: ['${CI_COMMIT_SHA:0:8}', '${CI_COMMIT_BRANCH}'] username: from_secret: registry_username password: from_secret: registry_password when: *publish_when - name: image-server-fe image: *kaniko depends_on: [check] settings: registry: *registry repo: ${CI_REPO_OWNER}/cardy-server-fe dockerfile: docker/server-fe.Dockerfile context: . tags: ['${CI_COMMIT_SHA:0:8}', '${CI_COMMIT_BRANCH}'] username: from_secret: registry_username password: from_secret: registry_password when: *publish_when - name: image-mobile-client image: *kaniko depends_on: [check] settings: registry: *registry repo: ${CI_REPO_OWNER}/cardy-mobile-client dockerfile: docker/mobile-client.Dockerfile context: . tags: ['${CI_COMMIT_SHA:0:8}', '${CI_COMMIT_BRANCH}'] username: from_secret: registry_username password: from_secret: registry_password when: *publish_when