harb/.woodpecker/ci.yml
2026-02-22 16:07:07 +00:00

91 lines
2.6 KiB
YAML

kind: pipeline
type: docker
name: build-and-test
when:
event: pull_request
clone:
git:
image: woodpeckerci/plugin-git
settings:
depth: 50
environment:
GIT_TERMINAL_PROMPT: "0"
CI_NETRC_MACHINE: codeberg.org
CI_NETRC_USERNAME: johba
CI_NETRC_PASSWORD:
from_secret: codeberg_token
steps:
- name: bootstrap-deps
image: registry.niovi.voyage/harb/node-ci:latest
commands:
- |
bash -c '
set -euo pipefail
git submodule update --init --recursive
yarn --cwd onchain/lib/uni-v3-lib install --frozen-lockfile
'
- name: foundry-suite
image: registry.niovi.voyage/harb/node-ci:latest
commands:
- |
bash -c '
set -euo pipefail
cd onchain
export PATH=/root/.foundry/bin:$PATH
forge --version
forge build
forge test -vvv
forge snapshot
'
- name: contracts-local-fork
image: registry.niovi.voyage/harb/node-ci:latest
environment:
HARB_ENV: BASE_SEPOLIA_LOCAL_FORK
commands:
- |
bash -c '
set -euo pipefail
cd onchain
export PATH=/root/.foundry/bin:$PATH
forge test -vv --ffi
'
# NOTE: contracts-base-sepolia step removed — requires base_sepolia_rpc secret
# which is not configured. Re-add when RPC secret is provisioned.
- name: node-quality
image: registry.niovi.voyage/harb/node-ci:latest
environment:
CI: "true"
NODE_OPTIONS: "--max-old-space-size=2048"
commands:
- |
bash -c '
set -euo pipefail
npm config set fund false
npm config set audit false
./scripts/build-kraiken-lib.sh
# Root install links workspace packages (@harb/web3) + all workspace members
npm install --no-audit --no-fund
# Landing (workspace member — deps already installed by root)
npm run lint --prefix landing
npm run build --prefix landing
# Web-app (workspace member)
npm run lint --prefix web-app
npm run test --prefix web-app -- --run
npm run build --prefix web-app
# Ponder (standalone — not a workspace member)
npm install --prefix services/ponder --no-audit --no-fund
npm run lint --prefix services/ponder
npm run build --prefix services/ponder
# TxnBot (standalone)
npm install --prefix services/txnBot --no-audit --no-fund
npm run lint --prefix services/txnBot
npm run test --prefix services/txnBot
npm run build --prefix services/txnBot
'