Skip to content

feat: initial Starknet support #6621

feat: initial Starknet support

feat: initial Starknet support #6621

Workflow file for this run

name: Continuous Integration
on:
push:
branches: [master]
pull_request:
types: [opened, synchronize, reopened]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full
THEGRAPH_STORE_POSTGRES_DIESEL_URL: "postgresql://postgres:postgres@localhost:5432/graph_node_test"
jobs:
unit-tests:
name: Run unit tests
runs-on: ubuntu-latest
timeout-minutes: 60
services:
ipfs:
image: ipfs/go-ipfs:v0.10.0
ports:
- 5001:5001
postgres:
image: postgres
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: graph_node_test
POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C"
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
env:
RUSTFLAGS: "-C link-arg=-fuse-ld=lld -D warnings"
steps:
- name: Tune GitHub hosted runner to reduce flakiness
# https://github.com/smorimoto/tune-github-hosted-runner-network/blob/main/action.yml
run: sudo ethtool -K eth0 tx off rx off
- name: Checkout sources
uses: actions/checkout@v2
- uses: Swatinem/rust-cache@v2
- name: Install lld
run: sudo apt-get install -y lld protobuf-compiler
- name: Run unit tests
uses: actions-rs/cargo@v1
with:
command: test
args: --verbose --workspace --exclude graph-tests -- --nocapture
runner-tests:
name: Subgraph Runner integration tests
runs-on: ubuntu-latest
timeout-minutes: 60
services:
ipfs:
image: ipfs/go-ipfs:v0.10.0
ports:
- 5001:5001
postgres:
image: bitnami/postgresql
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: graph_node_test
POSTGRES_INITDB_ARGS: "-E UTF8 --locale=C"
POSTGRESQL_EXTRA_FLAGS: "-c max_connections=1000"
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 10
ports:
- 5432:5432
env:
RUSTFLAGS: "-C link-arg=-fuse-ld=lld -D warnings"
steps:
- name: Tune GitHub hosted runner to reduce flakiness
# https://github.com/smorimoto/tune-github-hosted-runner-network/blob/main/action.yml
run: sudo ethtool -K eth0 tx off rx off
- name: Checkout sources
uses: actions/checkout@v2
- uses: Swatinem/rust-cache@v2
- name: Install lld
run: sudo apt-get install -y lld protobuf-compiler
- name: Run runner tests
id: runner-tests-1
uses: actions-rs/cargo@v1
env:
TESTS_GANACHE_HARD_WAIT_SECONDS: "60"
with:
command: test
args: --verbose --package graph-tests -- --skip parallel_integration_tests
integration-tests:
name: Run integration tests
runs-on: ubuntu-latest
timeout-minutes: 60
env:
RUSTFLAGS: "-C link-arg=-fuse-ld=lld -D warnings"
steps:
- name: Tune GitHub hosted runner to reduce flakiness
# https://github.com/smorimoto/tune-github-hosted-runner-network/blob/main/action.yml
run: sudo ethtool -K eth0 tx off rx off
- name: Checkout sources
uses: actions/checkout@v2
- uses: Swatinem/rust-cache@v2
- name: Install Node 16
uses: actions/setup-node@v3
with:
node-version: "16"
cache: yarn
cache-dependency-path: "tests/integration-tests/yarn.lock"
- name: Install lld and jq
run: sudo apt-get install -y lld jq protobuf-compiler
- name: Build graph-node
uses: actions-rs/cargo@v1
with:
command: build
args: --bin graph-node
# Integration tests are a bit flaky, running them twice increases the
# chances of one run succeeding.
- name: Run integration tests (round 1)
id: integration-tests-1
uses: actions-rs/cargo@v1
env:
N_CONCURRENT_TESTS: "4"
TESTS_GANACHE_HARD_WAIT_SECONDS: "30"
# Reduce how long a batch will stick around to avoid timeouts
GRAPH_STORE_WRITE_BATCH_DURATION: 30
with:
command: test
args: --verbose --package graph-tests parallel_integration_tests -- --nocapture
continue-on-error: true
- name: Run integration tests (round 2)
id: integration-tests-2
uses: actions-rs/cargo@v1
if: ${{ steps.integration-tests-1.outcome == 'failure' }}
env:
N_CONCURRENT_TESTS: "4"
TESTS_GANACHE_HARD_WAIT_SECONDS: "30"
# Reduce how long a batch will stick around to avoid timeouts
GRAPH_STORE_WRITE_BATCH_DURATION: 30
with:
command: test
args: --verbose --package graph-tests parallel_integration_tests -- --nocapture
rustfmt:
name: Check rustfmt style
runs-on: ubuntu-latest
timeout-minutes: 10
env:
RUSTFLAGS: "-D warnings"
steps:
- uses: actions/checkout@v2
- name: Check formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
name: Clippy linting
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v2
# Unlike rustfmt, Clippy actually compiles stuff so it benefits from
# caching.
- uses: Swatinem/rust-cache@v2
- name: Install deps
run: sudo apt-get install -y protobuf-compiler
- name: Run Clippy
uses: actions-rs/cargo@v1
with:
command: check-clippy
release-check:
name: Build in release mode
runs-on: ubuntu-latest
timeout-minutes: 60
env:
RUSTFLAGS: "-D warnings"
steps:
- uses: actions/checkout@v2
- uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get -y install libpq-dev protobuf-compiler
- name: Cargo check (release)
uses: actions-rs/cargo@v1
with:
command: check
args: --release