ETH-implicit account support #766
Workflow file for this run
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
name: CI | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
merge_group: | |
jobs: | |
cargo_nextest: | |
name: "Cargo Nextest (${{matrix.name}})" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Linux | |
id: linux | |
cache_id: linux | |
os: ubuntu-22.04-16core | |
flags: "" | |
run_integ_tests: true | |
- name: Linux Nightly | |
id: linux-nightly | |
cache_id: linux | |
os: ubuntu-22.04-16core | |
flags: "--features nightly,test_features" | |
run_integ_tests: true | |
- name: MacOS | |
id: macos | |
cache_id: macos | |
os: macos-latest-xlarge | |
# FIXME: some of these tests don't work very well on MacOS at the moment. Should fix | |
# them at earliest convenience :) | |
flags: "--exclude node-runtime --exclude runtime-params-estimator --exclude near-network --exclude estimator-warehouse" | |
run_integ_tests: false | |
timeout-minutes: 90 | |
steps: | |
- uses: actions/checkout@v4 | |
# Install all the required tools | |
- uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 | |
with: | |
crate: cargo-nextest | |
- uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 | |
with: | |
crate: cargo-deny | |
- uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 | |
with: | |
crate: cargo-llvm-cov | |
# Setup the dependency rust cache and llvm-cov | |
- uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 | |
with: | |
prefix-key: "0" # change this to invalidate CI cache | |
shared-key: "cargo_nextest-${{ matrix.cache_id }}" | |
- run: cargo llvm-cov show-env | grep -v RUSTFLAGS | tr -d "'" >> "$GITHUB_ENV" | |
- run: echo "RUSTC_WORKSPACE_WRAPPER=$PWD/scripts/rustc-coverage-wrapper.sh" >> "$GITHUB_ENV" | |
# Run unit tests | |
- run: cargo nextest run --locked --workspace --exclude integration-tests --cargo-profile dev-release --profile ci ${{ matrix.flags }} | |
env: | |
RUST_BACKTRACE: short | |
- run: cargo llvm-cov report --profile dev-release --codecov --output-path unittests.json | |
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: unittests.json | |
fail_ci_if_error: true | |
flags: unittests,${{ matrix.id }} | |
# See https://github.com/taiki-e/cargo-llvm-cov/issues/292 | |
- run: find target -name '*.profraw' -delete | |
# Run integration tests | |
- run: cargo nextest run --locked --package integration-tests --cargo-profile dev-release --profile ci ${{ matrix.flags }} | |
if: matrix.run_integ_tests | |
env: | |
RUST_BACKTRACE: short | |
- run: cargo llvm-cov report --profile dev-release --codecov --output-path integration-tests.json | |
if: matrix.run_integ_tests | |
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d | |
if: matrix.run_integ_tests | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: integration-tests.json | |
fail_ci_if_error: true | |
flags: integration-tests,${{ matrix.id }} | |
protobuf_backward_compat: | |
name: "Protobuf Backward Compatibility" | |
runs-on: ubuntu-22.04-8core | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: bufbuild/buf-setup-action@1158f4fa81bc02e1ff62abcca6d516c9e24c77da | |
- uses: bufbuild/buf-breaking-action@a074e988ee34efcd4927079e79c611f428354c01 | |
with: | |
against: "https://github.com/near/nearcore.git#${{github.event.pull_request.base.sha && format('ref={0}', github.event.pull_request.base.sha) || 'branch=master' }}" | |
py_backward_compat: | |
name: "Backward Compatibility" | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
cache: pip | |
- uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 | |
with: | |
crate: cargo-llvm-cov | |
- uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 | |
with: | |
prefix-key: "0" # change this to invalidate CI cache | |
shared-key: "cargo_nextest-linux" | |
save-if: "false" # use the cache from nextest, but don’t double-save | |
- run: pip3 install --user -r pytest/requirements.txt | |
- run: cargo llvm-cov show-env | grep -v RUSTFLAGS | tr -d "'" >> "$GITHUB_ENV" | |
- run: echo "RUSTC_WORKSPACE_WRAPPER=$PWD/scripts/rustc-coverage-wrapper.sh" >> "$GITHUB_ENV" | |
- run: cargo build --locked --profile dev-release -p neard --bin neard | |
- run: echo "CURRENT_NEARD=$PWD/target/dev-release/neard" >> "$GITHUB_ENV" | |
- run: cd pytest && python3 tests/sanity/backward_compatible.py | |
- run: cargo llvm-cov report --profile dev-release --codecov --output-path pytest-backcomp.json | |
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: pytest-backcomp.json | |
fail_ci_if_error: true | |
flags: pytests,backward-compatibility,linux | |
py_db_migration: | |
name: "Database Migration" | |
runs-on: ubuntu-22.04-8core | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
cache: pip | |
- uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 | |
with: | |
crate: cargo-llvm-cov | |
- uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 | |
with: | |
prefix-key: "0" # change this to invalidate CI cache | |
shared-key: "cargo_nextest-linux" | |
save-if: "false" # use the cache from nextest, but don’t double-save | |
- run: pip3 install --user -r pytest/requirements.txt | |
- run: cargo llvm-cov show-env | grep -v RUSTFLAGS | tr -d "'" >> "$GITHUB_ENV" | |
- run: echo "RUSTC_WORKSPACE_WRAPPER=$PWD/scripts/rustc-coverage-wrapper.sh" >> "$GITHUB_ENV" | |
- run: cargo build --locked --profile dev-release -p neard --bin neard | |
- run: echo "CURRENT_NEARD=$PWD/target/dev-release/neard" >> "$GITHUB_ENV" | |
- run: echo "NEAR_ROOT=$PWD" >> "$GITHUB_ENV" | |
- run: cd pytest && python3 tests/sanity/db_migration.py | |
- run: cargo llvm-cov report --profile dev-release --codecov --output-path pytest-dbmigr.json | |
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: pytest-dbmigr.json | |
fail_ci_if_error: true | |
flags: pytests,db-migration,linux | |
py_sanity_checks: | |
name: "Sanity Checks" | |
runs-on: ubuntu-22.04-16core | |
strategy: | |
fail-fast: false | |
timeout-minutes: 90 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
cache: pip | |
- uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 | |
with: | |
crate: cargo-llvm-cov | |
- uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 | |
with: | |
prefix-key: "0" # change this to invalidate CI cache | |
shared-key: "cargo_nextest-linux" | |
save-if: "false" # use the cache from nextest, but don’t double-save | |
- run: pip3 install --user -r pytest/requirements.txt | |
# This is the only job that uses `--features nightly` so we build this in-line instead of a | |
# separate job like done with the regular neard. | |
- run: cargo llvm-cov show-env | grep -v RUSTFLAGS | tr -d "'" >> "$GITHUB_ENV" | |
- run: echo "RUSTC_WORKSPACE_WRAPPER=$PWD/scripts/rustc-coverage-wrapper.sh" >> "$GITHUB_ENV" | |
- run: cargo build --profile dev-release -p neard --bin neard --features nightly | |
# Note: We're not running spin_up_cluster.py for non-nightly | |
# because spinning up non-nightly clusters is already covered | |
# by other steps in the CI, e.g. upgradable. | |
- run: python3 pytest/tests/sanity/spin_up_cluster.py | |
env: | |
NEAR_ROOT: "target/dev-release" | |
- run: cargo llvm-cov report --profile dev-release --codecov --output-path pytest-sanity.json | |
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: pytest-sanity.json | |
fail_ci_if_error: true | |
flags: pytests,sanity-checks,linux-nightly | |
py_genesis_check: | |
name: "Genesis Changes" | |
runs-on: ubuntu-22.04-8core | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
cache: pip | |
- uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 | |
with: | |
crate: cargo-llvm-cov | |
- uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 | |
with: | |
prefix-key: "0" # change this to invalidate CI cache | |
shared-key: "cargo_nextest-linux" | |
save-if: "false" # use the cache from nextest, but don’t double-save | |
- run: pip3 install --user -r pytest/requirements.txt | |
- run: cargo llvm-cov show-env | grep -v RUSTFLAGS | tr -d "'" >> "$GITHUB_ENV" | |
- run: echo "RUSTC_WORKSPACE_WRAPPER=$PWD/scripts/rustc-coverage-wrapper.sh" >> "$GITHUB_ENV" | |
- run: cargo build --locked --profile dev-release -p neard --bin neard | |
- run: echo "CURRENT_NEARD=$PWD/target/dev-release/neard" >> "$GITHUB_ENV" | |
- run: python3 scripts/state/update_res.py check | |
- run: cargo llvm-cov report --profile dev-release --codecov --output-path pytest-genesischk.json | |
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: pytest-genesischk.json | |
fail_ci_if_error: true | |
flags: pytests,genesis-check,linux | |
py_style_check: | |
name: "Style" | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
cache: pip | |
- run: pip3 install --user -r pytest/requirements.txt | |
- run: python3 scripts/check_nightly.py | |
- run: python3 scripts/check_pytests.py | |
- run: python3 scripts/fix_nightly_feature_flags.py | |
- run: ./scripts/formatting --check | |
py_upgradability: | |
name: "Upgradability" | |
runs-on: ubuntu-22.04-8core | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
cache: pip | |
- uses: baptiste0928/cargo-install@21a18ba3bf4a184d1804e8b759930d3471b1c941 | |
with: | |
crate: cargo-llvm-cov | |
- uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 | |
with: | |
prefix-key: "0" # change this to invalidate CI cache | |
shared-key: "cargo_nextest-linux" | |
save-if: "false" # use the cache from nextest, but don’t double-save | |
- run: pip3 install --user -r pytest/requirements.txt | |
- run: cargo llvm-cov show-env | grep -v RUSTFLAGS | tr -d "'" >> "$GITHUB_ENV" | |
- run: echo "RUSTC_WORKSPACE_WRAPPER=$PWD/scripts/rustc-coverage-wrapper.sh" >> "$GITHUB_ENV" | |
- run: cargo build --locked --profile dev-release -p neard --bin neard | |
- run: echo "CURRENT_NEARD=$PWD/target/dev-release/neard" >> "$GITHUB_ENV" | |
- run: cd pytest && python3 tests/sanity/upgradable.py | |
- run: cargo llvm-cov report --profile dev-release --codecov --output-path pytest-upgradability.json | |
- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: pytest-upgradability.json | |
fail_ci_if_error: true | |
flags: pytests,upgradability,linux | |
rpc_error_schema: | |
name: "RPC Schema" | |
runs-on: ubuntu-22.04-8core | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 | |
with: | |
prefix-key: "0" # change this to invalidate CI cache | |
shared-key: "cargo_nextest-linux" | |
save-if: "false" # use the cache from nextest, but don’t double-save | |
- run: ./chain/jsonrpc/build_errors_schema.sh | |
- run: git diff --quiet ./chain/jsonrpc/res/rpc_errors_schema.json || exit 1 | |
lychee_checks: | |
name: "Lychee Lints" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: lycheeverse/lychee-action@2ac9f030ccdea0033e2510a23a67da2a2da98492 | |
with: | |
fail: true |