diff --git a/.github/workflows/performance_summary.yml b/.github/workflows/performance_summary.yml index f3ae8012e510..aeaf16de813b 100644 --- a/.github/workflows/performance_summary.yml +++ b/.github/workflows/performance_summary.yml @@ -20,17 +20,21 @@ permissions: jobs: performance-summary: runs-on: ubuntu-latest - if: ${{ github.event.workflow_run.conclusion == 'success' }} + # if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - uses: actions/checkout@v3 - uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Post Performance Summary comment on PR - if: ${{ github.event.workflow_run.event == 'pull_request' }} + # if: ${{ github.event.workflow_run.event == 'pull_request' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} - GITHUB_PR_NUMBER: ${{ github.event.workflow_run.pull_requests[0].number }} - GITHUB_BASE_BRANCH: ${{ github.event.workflow_run.pull_requests[0].base.ref}} - GITHUB_PR_BRANCH: ${{ github.event.workflow_run.pull_requests[0].head.ref }} - GITHUB_PR_COMMIT_HASH: ${{ github.event.workflow_run.pull_requests[0].head.sha }} + # GITHUB_PR_NUMBER: ${{ github.event.workflow_run.pull_requests[0].number }} + # GITHUB_BASE_BRANCH: ${{ github.event.workflow_run.pull_requests[0].base.ref}} + # GITHUB_PR_BRANCH: ${{ github.event.workflow_run.pull_requests[0].head.ref }} + # GITHUB_PR_COMMIT_HASH: ${{ github.event.workflow_run.pull_requests[0].head.sha }} + GITHUB_PR_NUMBER: 2936 + GITHUB_BASE_BRANCH: main + GITHUB_PR_BRANCH: 11-16-track_ci_job_runtime + GITHUB_PR_COMMIT_HASH: 1cb21b6cf9b7b5336dbdb6e82b4a0e767f738e33 run: cargo run --release -p linera-summary -- ci diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 571aca029992..ec8b794ce32b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -40,34 +40,34 @@ permissions: contents: read jobs: - remote-net-test: - runs-on: ubuntu-latest-16-cores - timeout-minutes: 40 - - steps: - - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run the storage-service instance - run: | - cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & - - name: Run the validators - run: | - cargo build --features storage-service - mkdir /tmp/local-linera-net - cargo run --features storage-service --bin linera -- net up --storage service:tcp:localhost:1235:table --policy-config devnet --path /tmp/local-linera-net --validators 4 --shards 4 & - - name: Create two epochs and run the faucet - run: | - cargo build --bin linera - cargo run --bin linera -- resource-control-policy --block 0.0000001 - cargo run --bin linera -- resource-control-policy --block 0.000000 - cargo run --bin linera -- faucet --amount 1000 --port 8079 69705f85ac4c9fef6c02b4d83426aaaf05154c645ec1c61665f8e450f0468bc0 & - - name: Run the remote-net tests - run: | - cargo test -p linera-service remote_net_grpc --features remote-net + # remote-net-test: + # runs-on: ubuntu-latest-16-cores + # timeout-minutes: 40 + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run the storage-service instance + # run: | + # cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & + # - name: Run the validators + # run: | + # cargo build --features storage-service + # mkdir /tmp/local-linera-net + # cargo run --features storage-service --bin linera -- net up --storage service:tcp:localhost:1235:table --policy-config devnet --path /tmp/local-linera-net --validators 4 --shards 4 & + # - name: Create two epochs and run the faucet + # run: | + # cargo build --bin linera + # cargo run --bin linera -- resource-control-policy --block 0.0000001 + # cargo run --bin linera -- resource-control-policy --block 0.000000 + # cargo run --bin linera -- faucet --amount 1000 --port 8079 69705f85ac4c9fef6c02b4d83426aaaf05154c645ec1c61665f8e450f0468bc0 & + # - name: Run the remote-net tests + # run: | + # cargo test -p linera-service remote_net_grpc --features remote-net execution-wasmtime-test: runs-on: ubuntu-latest @@ -80,361 +80,361 @@ jobs: run: | cargo test --locked -p linera-execution --features wasmtime - wasm-application-test: - runs-on: ubuntu-latest - timeout-minutes: 15 - - steps: - - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run Wasm application tests - run: | - cd examples - cargo test --locked - - default-features-and-witty-integration-test: - runs-on: ubuntu-latest-16-cores - timeout-minutes: 20 - - steps: - - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Compile Wasm test modules for Witty integration tests - run: | - cargo build -p linera-witty-test-modules --target wasm32-unknown-unknown - - name: Run all tests using the default features (plus unstable-oracles, except storage-service) - run: | - # TODO(#2764): Actually link this to the default features - cargo test --no-default-features --features fs,macros,wasmer,rocksdb,unstable-oracles --locked - - name: Run Witty integration tests - run: | - cargo test -p linera-witty --features wasmer,wasmtime - - check-outdated-cli-md: - runs-on: ubuntu-latest - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Check for outdated CLI.md - run: | - if ! diff CLI.md <(cargo run --bin linera -- help-markdown) - then - echo '`CLI.md` differs from the output of `linera help-markdown`' - echo 'Run `linera help-markdown > CLI.md` to update it.' - exit 1 - fi - - benchmark-test: - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run the storage-service instance - run: | - cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & - - name: Run the benchmark test - run: | - cargo build --locked -p linera-service --bin linera-benchmark --features benchmark,storage-service - cargo test --locked -p linera-service --features benchmark,storage-service benchmark - - ethereum-tests: - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - uses: foundry-rs/foundry-toolchain@v1.2.0 - - name: Cache solc - id: cache-solc - uses: actions/cache@v4 - with: - path: /home/runner/.solc - key: solc-v0.8.25 - restore-keys: solc- - - name: Get Solc - if: ${{ steps.cache-solc.outputs.cache-hit != 'true' }} - uses: pontem-network/get-solc@master - with: - version: v0.8.25 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run the storage-service instance - run: | - cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & - - name: Run Ethereum tests - run: | - cargo test -p linera-ethereum --features ethereum - cargo test test_wasm_end_to_end_ethereum_tracker --features ethereum,storage-service,unstable-oracles + # wasm-application-test: + # runs-on: ubuntu-latest + # timeout-minutes: 15 + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run Wasm application tests + # run: | + # cd examples + # cargo test --locked + + # default-features-and-witty-integration-test: + # runs-on: ubuntu-latest-16-cores + # timeout-minutes: 20 + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Compile Wasm test modules for Witty integration tests + # run: | + # cargo build -p linera-witty-test-modules --target wasm32-unknown-unknown + # - name: Run all tests using the default features (plus unstable-oracles, except storage-service) + # run: | + # # TODO(#2764): Actually link this to the default features + # cargo test --no-default-features --features fs,macros,wasmer,rocksdb,unstable-oracles --locked + # - name: Run Witty integration tests + # run: | + # cargo test -p linera-witty --features wasmer,wasmtime + + # check-outdated-cli-md: + # runs-on: ubuntu-latest + # timeout-minutes: 10 + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Check for outdated CLI.md + # run: | + # if ! diff CLI.md <(cargo run --bin linera -- help-markdown) + # then + # echo '`CLI.md` differs from the output of `linera help-markdown`' + # echo 'Run `linera help-markdown > CLI.md` to update it.' + # exit 1 + # fi + + # benchmark-test: + # runs-on: ubuntu-latest + # timeout-minutes: 20 + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run the storage-service instance + # run: | + # cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & + # - name: Run the benchmark test + # run: | + # cargo build --locked -p linera-service --bin linera-benchmark --features benchmark,storage-service + # cargo test --locked -p linera-service --features benchmark,storage-service benchmark + + # ethereum-tests: + # runs-on: ubuntu-latest + # timeout-minutes: 20 + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - uses: foundry-rs/foundry-toolchain@v1.2.0 + # - name: Cache solc + # id: cache-solc + # uses: actions/cache@v4 + # with: + # path: /home/runner/.solc + # key: solc-v0.8.25 + # restore-keys: solc- + # - name: Get Solc + # if: ${{ steps.cache-solc.outputs.cache-hit != 'true' }} + # uses: pontem-network/get-solc@master + # with: + # version: v0.8.25 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run the storage-service instance + # run: | + # cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & + # - name: Run Ethereum tests + # run: | + # cargo test -p linera-ethereum --features ethereum + # cargo test test_wasm_end_to_end_ethereum_tracker --features ethereum,storage-service,unstable-oracles - storage-service-tests: - runs-on: ubuntu-latest-16-cores - timeout-minutes: 50 - steps: - - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Build example applications - run: | - cd examples - cargo build --locked --release --target wasm32-unknown-unknown - - name: Run the storage-service instance and the storage-service tests - run: | - cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & - cargo test --features storage-service,unstable-oracles -- storage_service --nocapture - - web: - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - uses: arduino/setup-protoc@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/checkout@v3 - - name: Switch to nightly Rust toolchain - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Compile `linera-client` for the browser - run: | - cargo build -p linera-client \ - --locked \ - --target wasm32-unknown-unknown \ - --no-default-features \ - --features web-default - - name: Install chromedriver - uses: nanasess/setup-chromedriver@v2 - - name: Install wasm-pack - uses: jetli/wasm-pack-action@v0.4.0 - with: - version: 'latest' - - name: Run the browser tests - run: | - cd linera-views - WASM_BINDGEN_TEST_TIMEOUT=300 wasm-pack test --chrome --headless -- --features web-default - - lint-unexpected-chain-load-operations: - runs-on: ubuntu-latest - timeout-minutes: 2 - - steps: - - uses: actions/checkout@v3 - - name: Check for unexpected chain load operations - run: | - ./scripts/check_chain_loads.sh - - lint-check-copyright-headers: - runs-on: ubuntu-latest - timeout-minutes: 2 - - steps: - - uses: actions/checkout@v3 - - name: Build check_copyright_header script - run: | - cd ./scripts/check_copyright_header - cargo build --locked --release - - name: Check Copyright headers - run: > - find linera-* examples -name '*.rs' -a -not -wholename '*/target/*' -print0 - | xargs -0 scripts/target/release/check_copyright_header - - lint-cargo-machete: - runs-on: ubuntu-latest - timeout-minutes: 2 - - steps: - - uses: actions/checkout@v3 - - name: Put lint toolchain file in place - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install cargo-machete - run: | - cargo install cargo-machete --locked - - name: Check for unused dependencies - run: | - cargo machete - - lint-cargo-fmt: - runs-on: ubuntu-latest - timeout-minutes: 2 - - steps: - - uses: actions/checkout@v3 - - name: Put lint toolchain file in place - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Check formatting - run: | - cargo fmt -- --check - - lint-cargo-sort: - runs-on: ubuntu-latest - timeout-minutes: 2 - - steps: - - uses: actions/checkout@v3 - - name: Put lint toolchain file in place - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install cargo-sort - run: | - RUSTFLAGS='' cargo install cargo-sort --git https://github.com/Twey/cargo-sort/ --tag linera - - name: Check if Cargo.toml files are sorted - run: | - cargo sort --check --workspace --grouped - - name: Check if example Cargo.toml files are sorted - run: | - cd examples - cargo sort --check --workspace --grouped - - lint-check-for-outdated-readme: - runs-on: ubuntu-latest - timeout-minutes: 5 - - steps: - - uses: actions/checkout@v3 - - name: Put lint toolchain file in place - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install cargo-rdme - run: | - cargo install cargo-rdme --locked - - name: Check for outdated README.md - run: | - (set -e; for I in linera-*; do if [ -d "$I" ]; then echo $I; cargo rdme --check --no-fail-on-warnings -w $I; fi; done) - (set -e; cd examples; for dir in */; do - if [ -f "${dir}README.md" ] && grep -q "" "${dir}README.md"; then - dir_name="${dir%/}" - echo "${dir_name}" - cargo rdme --check --no-fail-on-warnings -w "${dir_name}" - fi - done) - - lint-wasm-applications: - runs-on: ubuntu-latest - timeout-minutes: 10 - - steps: - - uses: actions/checkout@v3 - - name: Put lint toolchain file in place - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run Wasm application lints - run: | - cd examples - cargo fmt -- --check - cargo clippy --all-targets --all-features --target wasm32-unknown-unknown --locked - cargo clippy --all-targets --all-features --target x86_64-unknown-linux-gnu --locked - - lint-cargo-clippy: - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - uses: actions/checkout@v3 - - name: Put lint toolchain file in place - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run clippy - run: | - cargo clippy --locked --all-targets --all-features - cargo clippy --locked --no-default-features --features kubernetes - cargo clippy --locked --no-default-features - cargo clippy --locked --target wasm32-unknown-unknown --no-default-features --features web-default \ - -p linera-client \ - -p linera-rpc \ - -p linera-views - - lint-cargo-doc: - runs-on: ubuntu-latest - timeout-minutes: 20 - - steps: - - uses: actions/checkout@v3 - - name: Put lint toolchain file in place - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run cargo doc - run: | - cargo doc --locked --all-features - - lint-check-linera-service-graphql-schema: - runs-on: ubuntu-latest - timeout-minutes: 15 - - steps: - - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Check linera-service GraphQL schema - run: | - diff <(cargo run --locked --bin linera-schema-export) linera-service-graphql-client/gql/service_schema.graphql - - lint-check-all-features: - runs-on: ubuntu-latest-16-cores - timeout-minutes: 50 - - steps: - - uses: actions/checkout@v3 - - name: Put lint toolchain file in place - run: | - ln -sf toolchains/nightly/rust-toolchain.toml - - uses: actions-rust-lang/setup-rust-toolchain@v1 - - name: Install cargo-all-features - run: | - cargo install --git https://github.com/ma2bd/cargo-all-features --branch workspace_metadata --locked - - name: Install Protoc - uses: arduino/setup-protoc@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run cargo check-all-features - run: | - cargo check-all-features --all-targets + # storage-service-tests: + # runs-on: ubuntu-latest-16-cores + # timeout-minutes: 50 + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Build example applications + # run: | + # cd examples + # cargo build --locked --release --target wasm32-unknown-unknown + # - name: Run the storage-service instance and the storage-service tests + # run: | + # cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & + # cargo test --features storage-service,unstable-oracles -- storage_service --nocapture + + # web: + # runs-on: ubuntu-latest + # timeout-minutes: 20 + + # steps: + # - uses: arduino/setup-protoc@v3 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - uses: actions/checkout@v3 + # - name: Switch to nightly Rust toolchain + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Compile `linera-client` for the browser + # run: | + # cargo build -p linera-client \ + # --locked \ + # --target wasm32-unknown-unknown \ + # --no-default-features \ + # --features web-default + # - name: Install chromedriver + # uses: nanasess/setup-chromedriver@v2 + # - name: Install wasm-pack + # uses: jetli/wasm-pack-action@v0.4.0 + # with: + # version: 'latest' + # - name: Run the browser tests + # run: | + # cd linera-views + # WASM_BINDGEN_TEST_TIMEOUT=300 wasm-pack test --chrome --headless -- --features web-default + + # lint-unexpected-chain-load-operations: + # runs-on: ubuntu-latest + # timeout-minutes: 2 + + # steps: + # - uses: actions/checkout@v3 + # - name: Check for unexpected chain load operations + # run: | + # ./scripts/check_chain_loads.sh + + # lint-check-copyright-headers: + # runs-on: ubuntu-latest + # timeout-minutes: 2 + + # steps: + # - uses: actions/checkout@v3 + # - name: Build check_copyright_header script + # run: | + # cd ./scripts/check_copyright_header + # cargo build --locked --release + # - name: Check Copyright headers + # run: > + # find linera-* examples -name '*.rs' -a -not -wholename '*/target/*' -print0 + # | xargs -0 scripts/target/release/check_copyright_header + + # lint-cargo-machete: + # runs-on: ubuntu-latest + # timeout-minutes: 2 + + # steps: + # - uses: actions/checkout@v3 + # - name: Put lint toolchain file in place + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install cargo-machete + # run: | + # cargo install cargo-machete --locked + # - name: Check for unused dependencies + # run: | + # cargo machete + + # lint-cargo-fmt: + # runs-on: ubuntu-latest + # timeout-minutes: 2 + + # steps: + # - uses: actions/checkout@v3 + # - name: Put lint toolchain file in place + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Check formatting + # run: | + # cargo fmt -- --check + + # lint-cargo-sort: + # runs-on: ubuntu-latest + # timeout-minutes: 2 + + # steps: + # - uses: actions/checkout@v3 + # - name: Put lint toolchain file in place + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install cargo-sort + # run: | + # RUSTFLAGS='' cargo install cargo-sort --git https://github.com/Twey/cargo-sort/ --tag linera + # - name: Check if Cargo.toml files are sorted + # run: | + # cargo sort --check --workspace --grouped + # - name: Check if example Cargo.toml files are sorted + # run: | + # cd examples + # cargo sort --check --workspace --grouped + + # lint-check-for-outdated-readme: + # runs-on: ubuntu-latest + # timeout-minutes: 5 + + # steps: + # - uses: actions/checkout@v3 + # - name: Put lint toolchain file in place + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install cargo-rdme + # run: | + # cargo install cargo-rdme --locked + # - name: Check for outdated README.md + # run: | + # (set -e; for I in linera-*; do if [ -d "$I" ]; then echo $I; cargo rdme --check --no-fail-on-warnings -w $I; fi; done) + # (set -e; cd examples; for dir in */; do + # if [ -f "${dir}README.md" ] && grep -q "" "${dir}README.md"; then + # dir_name="${dir%/}" + # echo "${dir_name}" + # cargo rdme --check --no-fail-on-warnings -w "${dir_name}" + # fi + # done) + + # lint-wasm-applications: + # runs-on: ubuntu-latest + # timeout-minutes: 10 + + # steps: + # - uses: actions/checkout@v3 + # - name: Put lint toolchain file in place + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run Wasm application lints + # run: | + # cd examples + # cargo fmt -- --check + # cargo clippy --all-targets --all-features --target wasm32-unknown-unknown --locked + # cargo clippy --all-targets --all-features --target x86_64-unknown-linux-gnu --locked + + # lint-cargo-clippy: + # runs-on: ubuntu-latest + # timeout-minutes: 20 + + # steps: + # - uses: actions/checkout@v3 + # - name: Put lint toolchain file in place + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run clippy + # run: | + # cargo clippy --locked --all-targets --all-features + # cargo clippy --locked --no-default-features --features kubernetes + # cargo clippy --locked --no-default-features + # cargo clippy --locked --target wasm32-unknown-unknown --no-default-features --features web-default \ + # -p linera-client \ + # -p linera-rpc \ + # -p linera-views + + # lint-cargo-doc: + # runs-on: ubuntu-latest + # timeout-minutes: 20 + + # steps: + # - uses: actions/checkout@v3 + # - name: Put lint toolchain file in place + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run cargo doc + # run: | + # cargo doc --locked --all-features + + # lint-check-linera-service-graphql-schema: + # runs-on: ubuntu-latest + # timeout-minutes: 15 + + # steps: + # - uses: actions/checkout@v3 + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Check linera-service GraphQL schema + # run: | + # diff <(cargo run --locked --bin linera-schema-export) linera-service-graphql-client/gql/service_schema.graphql + + # lint-check-all-features: + # runs-on: ubuntu-latest-16-cores + # timeout-minutes: 50 + + # steps: + # - uses: actions/checkout@v3 + # - name: Put lint toolchain file in place + # run: | + # ln -sf toolchains/nightly/rust-toolchain.toml + # - uses: actions-rust-lang/setup-rust-toolchain@v1 + # - name: Install cargo-all-features + # run: | + # cargo install --git https://github.com/ma2bd/cargo-all-features --branch workspace_metadata --locked + # - name: Install Protoc + # uses: arduino/setup-protoc@v1 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # - name: Run cargo check-all-features + # run: | + # cargo check-all-features --all-targets