Skip to content

Merge #4215

Merge #4215 #6500

Workflow file for this run

name: CI
on:
push:
branches: [main, staging, trying]
pull_request:
branches: [main, 'testnet_*']
types:
- opened
- reopened
- synchronize
- ready_for_review
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full
RUSTFLAGS: "--deny warnings"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# Quick tests on each commit/PR
sanity:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-07-01
components: rustfmt
override: true
- uses: Swatinem/rust-cache@v2
with:
shared-key: "sanity"
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
check:
if: github.ref != 'refs/heads/staging'
needs: sanity
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-07-01
- uses: Swatinem/rust-cache@v2
with:
shared-key: "check"
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: arduino/setup-protoc@v1
with:
version: '3.x'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions-rs/cargo@v1
with:
command: check
clippy:
if: github.ref != 'refs/heads/staging'
needs: sanity
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-07-01
components: clippy
override: true
- uses: Swatinem/rust-cache@v2
with:
shared-key: "clippy"
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: arduino/setup-protoc@v1
with:
version: '3.x'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: -- -A clippy::uninlined-format-args
# Full cross-platform tests required by bors to merge on main branch
full:
name: full
needs: sanity
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macOS-latest
# - windows-latest
steps:
- uses: ilammy/setup-nasm@v1
- uses: actions/checkout@v3
with:
submodules: "recursive"
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-07-01
override: true
- uses: Swatinem/rust-cache@v2
with:
shared-key: "massa"
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: arduino/setup-protoc@v1
with:
version: '3.x'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions-rs/cargo@v1
with:
command: install
args: cargo-nextest
- uses: actions-rs/cargo@v1
with:
command: nextest
args: run --features testing --retries 10
- uses: actions-rs/cargo@v1
with:
command: test
args: --features testing --doc
build: # quick hack because bors wrongly detect matrix jobs status
needs: full
runs-on: ubuntu-latest
steps:
- run: exit 0
# Maybe launch it only in testnet branches
gas-costs-check:
if: github.ref != 'refs/heads/staging' && github.ref != 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-07-01
components: rustfmt
override: true
- uses: actions/checkout@v3
with:
repository: massalabs/gas-calibration
path: gas-calibration
ref: main
- uses: actions/checkout@v3
with:
repository: massalabs/massa-as-sdk
path: massa-as-sdk
ref: main
# Replace the branch in the dependencies in gas-calibration project by the current branch
# Special case for massa-sc-runtime: we use the branch referenced in the Cargo.toml of massa-execution-worker.
- name: "Use the current branch as dependency for gas-calibration"
run: >
cd gas-calibration &&
sed -i 's!main!${{ github.head_ref || github.ref_name }}!g' Cargo.toml &&
sed -i 's!massa-sc-runtime = { git = "https://github.com/massalabs/massa-sc-runtime", features = \["gas_calibration"\] }!'"$(cat ../massa-execution-worker/Cargo.toml | grep 'massalabs/massa-sc-runtime' | sed 's!/!\\/!g' | sed 's!}!, features = ["gas_calibration"]}!g' )"'!g' Cargo.toml
#- name: "Launch gas-calibration with one SC per ABI in massa-as-sdk to see if there is an ABI missing"
# run: >
# cd gas-calibration &&
# cargo run -r -- --nb-scs-by-abi=1 --as-sdk-env-path=../massa-as-sdk/assembly/env/env.ts --only-generate
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-07-01
components: rustfmt
override: true
- uses: Swatinem/rust-cache@v2
with:
shared-key: "doc"
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: arduino/setup-protoc@v1
with:
version: '3.x'
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions-rs/cargo@v1
with:
command: doc
args: --no-deps --document-private-items
- uses: JamesIves/github-pages-deploy-action@4.1.7
with:
branch: gh-pages
folder: target/doc
unit_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: "recursive"
- name: setup_tests
shell: bash
run: |
cargo install cargo-script && cargo script tools/setup_test.rs && git diff --no-ext-diff --quiet