when: - event: [pull_request, tag] - event: push branch: - ${CI_REPO_DEFAULT_BRANCH} - release/* - renovate/* variables: - &node_image 'docker.io/node:21-alpine' - &when path: # related config files - '.woodpecker/web.yml' # web source code - 'web/**' # api source code - 'server/api/**' event: [pull_request, tag, deployment] steps: install_dependencies: image: *node_image directory: web/ commands: - corepack enable - pnpm install --frozen-lockfile when: *when lint: depends_on: - install_dependencies image: *node_image directory: web/ commands: - corepack enable - pnpm lint when: *when formatcheck: depends_on: - install_dependencies image: *node_image directory: web/ commands: - corepack enable - pnpm format:check when: *when typecheck: depends_on: - install_dependencies image: *node_image directory: web/ commands: - corepack enable - pnpm typecheck when: *when test: depends_on: - install_dependencies image: *node_image directory: web/ commands: - corepack enable - pnpm test when: *when