2026-02-02 19:24:57 +01:00
|
|
|
kind: pipeline
|
|
|
|
|
type: docker
|
2026-02-18 00:19:05 +01:00
|
|
|
name: build-and-test
|
2026-02-02 19:24:57 +01:00
|
|
|
|
|
|
|
|
when:
|
|
|
|
|
event: pull_request
|
|
|
|
|
|
2026-02-22 16:07:07 +00:00
|
|
|
clone:
|
|
|
|
|
git:
|
|
|
|
|
image: woodpeckerci/plugin-git
|
|
|
|
|
settings:
|
|
|
|
|
depth: 50
|
2026-03-14 12:44:08 +00:00
|
|
|
reference: /git-mirrors/harb.git
|
2026-02-27 09:41:51 +00:00
|
|
|
netrc_machine: codeberg.org
|
|
|
|
|
netrc_username: johba
|
|
|
|
|
netrc_password:
|
2026-02-22 16:07:07 +00:00
|
|
|
from_secret: codeberg_token
|
|
|
|
|
|
2026-02-02 19:24:57 +01:00
|
|
|
steps:
|
|
|
|
|
- name: bootstrap-deps
|
|
|
|
|
image: registry.niovi.voyage/harb/node-ci:latest
|
|
|
|
|
commands:
|
|
|
|
|
- |
|
2026-02-03 12:07:28 +01:00
|
|
|
bash -c '
|
2026-02-02 19:24:57 +01:00
|
|
|
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:
|
|
|
|
|
- |
|
2026-02-03 12:07:28 +01:00
|
|
|
bash -c '
|
2026-02-02 19:24:57 +01:00
|
|
|
set -euo pipefail
|
|
|
|
|
cd onchain
|
|
|
|
|
export PATH=/root/.foundry/bin:$PATH
|
|
|
|
|
forge --version
|
|
|
|
|
forge build
|
|
|
|
|
forge test -vvv
|
|
|
|
|
forge snapshot
|
|
|
|
|
'
|
|
|
|
|
|
2026-02-18 00:19:05 +01:00
|
|
|
- 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.
|
|
|
|
|
|
2026-03-18 13:11:33 +00:00
|
|
|
- name: transpiler-tests
|
|
|
|
|
image: registry.niovi.voyage/harb/node-ci:latest
|
|
|
|
|
commands:
|
|
|
|
|
- |
|
|
|
|
|
bash -c '
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
export PATH=/root/.foundry/bin:$PATH
|
|
|
|
|
cd tools/push3-transpiler
|
|
|
|
|
npm install --silent
|
|
|
|
|
bash test_inject_extraction.sh
|
|
|
|
|
bash test_transpiler_clamping.sh
|
|
|
|
|
'
|
|
|
|
|
|
2026-02-28 10:51:59 +00:00
|
|
|
- name: single-package-manager
|
|
|
|
|
image: registry.niovi.voyage/harb/node-ci:latest
|
|
|
|
|
commands:
|
|
|
|
|
- |
|
|
|
|
|
bash -c '
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
if [ -f kraiken-lib/yarn.lock ]; then
|
|
|
|
|
echo "ERROR: kraiken-lib/yarn.lock must not be committed. Use npm only (see packageManager field in kraiken-lib/package.json)." >&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
'
|
|
|
|
|
|
2026-02-02 19:24:57 +01:00
|
|
|
- name: node-quality
|
|
|
|
|
image: registry.niovi.voyage/harb/node-ci:latest
|
|
|
|
|
environment:
|
|
|
|
|
CI: "true"
|
2026-02-18 00:19:05 +01:00
|
|
|
NODE_OPTIONS: "--max-old-space-size=2048"
|
2026-02-02 19:24:57 +01:00
|
|
|
commands:
|
|
|
|
|
- |
|
2026-02-03 12:07:28 +01:00
|
|
|
bash -c '
|
2026-02-02 19:24:57 +01:00
|
|
|
set -euo pipefail
|
|
|
|
|
npm config set fund false
|
|
|
|
|
npm config set audit false
|
|
|
|
|
./scripts/build-kraiken-lib.sh
|
2026-02-19 20:18:27 +01:00
|
|
|
# Root install links workspace packages (@harb/web3) + all workspace members
|
|
|
|
|
npm install --no-audit --no-fund
|
|
|
|
|
# Landing (workspace member — deps already installed by root)
|
2026-02-02 19:24:57 +01:00
|
|
|
npm run lint --prefix landing
|
|
|
|
|
npm run build --prefix landing
|
2026-02-19 20:18:27 +01:00
|
|
|
# Web-app (workspace member)
|
2026-02-02 19:24:57 +01:00
|
|
|
npm run lint --prefix web-app
|
|
|
|
|
npm run test --prefix web-app -- --run
|
|
|
|
|
npm run build --prefix web-app
|
2026-02-19 20:18:27 +01:00
|
|
|
# Ponder (standalone — not a workspace member)
|
2026-02-02 19:24:57 +01:00
|
|
|
npm install --prefix services/ponder --no-audit --no-fund
|
|
|
|
|
npm run lint --prefix services/ponder
|
|
|
|
|
npm run build --prefix services/ponder
|
2026-02-19 20:18:27 +01:00
|
|
|
# TxnBot (standalone)
|
2026-02-02 19:24:57 +01:00
|
|
|
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
|
|
|
|
|
'
|