mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-06 10:11:44 +00:00
## Issue Addressed Windows incompatibility. ## Proposed Changes On windows, lighthouse needs to default to STDIN as tty doesn't exist. Also Windows uses ACLs for file permissions. So to mirror chmod 600, we will remove every entry in a file's ACL and add only a single SID that is an alias for the file owner. Beyond that, there were several changes made to different unit tests because windows has slightly different error messages as well as frustrating nuances around killing a process :/ ## Additional Info Tested on my Windows VM and it appears to work, also compiled & tested on Linux with these changes. Permissions look correct on both platforms now. Just waiting for my validator to activate on Prater so I can test running full validator client on windows. Co-authored-by: ethDreamer <37123614+ethDreamer@users.noreply.github.com> Co-authored-by: Michael Sproul <micsproul@gmail.com>
206 lines
6.2 KiB
YAML
206 lines
6.2 KiB
YAML
name: test-suite
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- stable
|
|
- staging
|
|
- trying
|
|
- 'pr/*'
|
|
pull_request:
|
|
env:
|
|
# Deny warnings in CI
|
|
RUSTFLAGS: "-D warnings"
|
|
# The Nightly version used for cargo-udeps, might need updating from time to time.
|
|
PINNED_NIGHTLY: nightly-2021-03-01
|
|
jobs:
|
|
target-branch-check:
|
|
name: target-branch-check
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'pull_request'
|
|
steps:
|
|
- name: Check that pull request is targeting unstable branch
|
|
run: test ${{ github.base_ref }} = "unstable"
|
|
cargo-fmt:
|
|
name: cargo-fmt
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Check formatting with cargo fmt
|
|
run: make cargo-fmt
|
|
release-tests-ubuntu:
|
|
name: release-tests-ubuntu
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Install ganache-cli
|
|
run: sudo npm install -g ganache-cli
|
|
- name: Run tests in release
|
|
run: make test-release
|
|
release-tests-windows:
|
|
name: release-tests-windows
|
|
runs-on: windows-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Install ganache-cli
|
|
run: npm install -g ganache-cli
|
|
- name: Install make
|
|
run: choco install -y make
|
|
- name: Run tests in release
|
|
run: make test-release
|
|
debug-tests-ubuntu:
|
|
name: debug-tests-ubuntu
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Install ganache-cli
|
|
run: sudo npm install -g ganache-cli
|
|
- name: Run tests in debug
|
|
run: make test-debug
|
|
state-transition-vectors-ubuntu:
|
|
name: state-transition-vectors-ubuntu
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Run state_transition_vectors in release.
|
|
run: make run-state-transition-tests
|
|
ef-tests-ubuntu:
|
|
name: ef-tests-ubuntu
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Run eth2.0-spec-tests with blst, milagro and fake_crypto
|
|
run: make test-ef
|
|
dockerfile-ubuntu:
|
|
name: dockerfile-ubuntu
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Build the root Dockerfile
|
|
run: docker build .
|
|
eth1-simulator-ubuntu:
|
|
name: eth1-simulator-ubuntu
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Install ganache-cli
|
|
run: sudo npm install -g ganache-cli
|
|
- name: Run the beacon chain sim that starts from an eth1 contract
|
|
run: cargo run --release --bin simulator eth1-sim
|
|
no-eth1-simulator-ubuntu:
|
|
name: no-eth1-simulator-ubuntu
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Install ganache-cli
|
|
run: sudo npm install -g ganache-cli
|
|
- name: Run the beacon chain sim without an eth1 connection
|
|
run: cargo run --release --bin simulator no-eth1-sim
|
|
syncing-simulator-ubuntu:
|
|
name: syncing-simulator-ubuntu
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Install ganache-cli
|
|
run: sudo npm install -g ganache-cli
|
|
- name: Run the syncing simulator
|
|
run: cargo run --release --bin simulator syncing-sim
|
|
check-benchmarks:
|
|
name: check-benchmarks
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Typecheck benchmark code without running it
|
|
run: make check-benches
|
|
check-consensus:
|
|
name: check-consensus
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Typecheck consensus code in strict mode
|
|
run: make check-consensus
|
|
clippy:
|
|
name: clippy
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Lint code for quality and style with Clippy
|
|
run: make lint
|
|
- name: Certify Cargo.lock freshness
|
|
run: git diff --exit-code Cargo.lock
|
|
arbitrary-check:
|
|
name: arbitrary-check
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Validate state_processing feature arbitrary-fuzz
|
|
run: make arbitrary-fuzz
|
|
cargo-audit:
|
|
name: cargo-audit
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Get latest version of stable Rust
|
|
run: rustup update stable
|
|
- name: Run cargo audit to identify known security vulnerabilities reported to the RustSec Advisory Database
|
|
run: make audit
|
|
cargo-udeps:
|
|
name: cargo-udeps
|
|
runs-on: ubuntu-latest
|
|
needs: cargo-fmt
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Install Rust (${{ env.PINNED_NIGHTLY }})
|
|
run: rustup toolchain install $PINNED_NIGHTLY
|
|
- name: Install cargo-udeps
|
|
run: cargo install cargo-udeps --locked
|
|
- name: Run cargo udeps to identify unused crates in the dependency graph
|
|
run: make udeps
|
|
env:
|
|
# Allow warnings on Nightly
|
|
RUSTFLAGS: ""
|