Update State Storage to use Linked Merkle Tree #644
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow runs lint/test/build in parallel | |
# on every pull request to develop | |
# It also produces test coverage comments | |
name: "Validate PRs to develop" | |
on: | |
# run on every pull request | |
pull_request: | |
# only for the following branches | |
branches: | |
- develop | |
jobs: | |
# Installs npm dependencies for the first time, | |
# caching them in ~/.npm | |
install: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
# This only caches ~/.npm, therefore each subsequent | |
# job needs to run `npm ci` to install deps from npm cache | |
# alternative is to cache `node_modules` directly | |
# TODO: | |
# https://www.voorhoede.nl/en/blog/super-fast-npm-install-on-github-actions/ | |
# Add caching of `node_modules` to speed up this workflow | |
cache: npm | |
# install dependencies from the package-lock.json | |
- name: Install dependencies | |
run: npm ci --workspaces | |
# builds all packages | |
build: | |
runs-on: ubuntu-latest | |
needs: install | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: npm | |
- name: "Install dependencies" | |
run: npm ci --workspaces --include-workspace-root | |
- name: "Build" | |
run: npm run build | |
# lints all packages | |
lint: | |
runs-on: ubuntu-latest | |
needs: install | |
steps: | |
# check out the repository | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: npm | |
- name: "Install dependencies" | |
run: npm ci --workspaces --include-workspace-root | |
- name: "Build" | |
run: npm run build | |
- name: "Lint" | |
run: npm run lint | |
- name: "Check formatting" | |
run: npx prettier ./packages --check | |
# tests all packages | |
test: | |
runs-on: ubuntu-latest | |
needs: install | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: npm | |
- name: "Install dependencies" | |
run: npm ci --workspaces --include-workspace-root | |
- name: "Build" | |
run: npm run build | |
- name: "Test" | |
run: npm run test:ci | |
integration: | |
runs-on: ubuntu-latest | |
needs: test | |
env: | |
POSTGRES_URL: localhost | |
REDIS_URL: localhost | |
REDIS_CI: true | |
DATABASE_URL: "postgresql://admin:password@localhost:5432/protokit?schema=public" | |
services: | |
postgres: | |
image: postgres:14-alpine | |
env: | |
POSTGRES_PASSWORD: password | |
POSTGRES_USER: admin | |
POSTGRES_DB: protokit | |
ports: | |
- 5432:5432 | |
redis: | |
image: redis:6.2-alpine | |
ports: | |
- 6379:6379 | |
lighnet: | |
image: o1labs/mina-local-network:compatible-latest-lightnet | |
env: | |
RUN_ARCHIVE_NODE: true | |
LOG_LEVEL: 'INFO' | |
PROOF_LEVEL: 'none' | |
NETWORK_TYPE: 'single-node' | |
ports: | |
- 3085:3085 | |
- 8080:8080 | |
- 8181:8181 | |
# archive endpoints | |
- 8282:8282 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: npm | |
- name: "Install dependencies" | |
run: npm ci --workspaces --include-workspace-root | |
- name: "Build" | |
run: npm run build | |
- name: "Migrate DB" | |
run: npm run migrate | |
- name: "Wait for lightnet readiness" | |
uses: o1-labs/wait-for-mina-network-action@v1 | |
with: | |
mina-graphql-port: 3085 | |
max-attempts: 30 | |
polling-interval-ms: 5000 | |
- name: "Integration tests" | |
run: npm run test:integration |