Skip to content

refactor(volo-build): adapt to the codegen backend new trait and new codegen context defined in pilota-build #1767

refactor(volo-build): adapt to the codegen backend new trait and new codegen context defined in pilota-build

refactor(volo-build): adapt to the codegen backend new trait and new codegen context defined in pilota-build #1767

Workflow file for this run

name: "CI"
on:
pull_request:
push:
branches:
- main
env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
jobs:
ci-pass:
name: CI is green
runs-on: ubuntu-latest
needs:
- test-linux
- test-linux-aarch64
- test-macos
- test-windows
- lint
- docs-check
- test-cli
steps:
- run: exit 0
lint:
runs-on: [self-hosted, Linux, amd64]
strategy:
matrix:
rust: [nightly]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
components: rustfmt,clippy
toolchain: ${{matrix.rust}}
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Format check
run: |
cargo fmt -- --check
docs-check:
runs-on: [self-hosted, Linux, amd64]
strategy:
matrix:
rust: [nightly]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
components: rustfmt,clippy
toolchain: ${{matrix.rust}}
- name: Docs check
run: |
cargo rustdoc -p volo --all-features -- --deny warnings
cargo rustdoc -p volo-build --all-features -- --deny warnings
cargo rustdoc -p volo-grpc --all-features -- --deny warnings
cargo rustdoc -p volo-http --all-features -- --deny warnings
cargo rustdoc -p volo-thrift --all-features -- --deny warnings
test-linux:
runs-on: [self-hosted, Linux, amd64]
strategy:
matrix:
rust: [nightly, stable]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
components: rustfmt,clippy
toolchain: ${{matrix.rust}}
- name: Run tests
run: |
bash scripts/install-linux-dependencies.sh
bash scripts/clippy-and-test.sh
test-linux-aarch64:
runs-on: [self-hosted, Linux, aarch64]
strategy:
matrix:
rust: [stable]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
components: rustfmt,clippy
toolchain: ${{matrix.rust}}
- name: Run tests
run: |
bash scripts/install-linux-dependencies.sh
bash scripts/clippy-and-test.sh --no-test
test-macos:
runs-on: [self-hosted, macOS]
strategy:
matrix:
rust: [stable]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
components: rustfmt,clippy
toolchain: ${{matrix.rust}}
- name: Run tests
run: |
bash scripts/clippy-and-test.sh --no-test
test-windows:
runs-on: [self-hosted, Windows]
strategy:
matrix:
rust: [stable]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
components: rustfmt,clippy
toolchain: ${{matrix.rust}}
- name: Run tests
run: |
bash scripts/clippy-and-test.sh --no-test
test-cli:
runs-on: [self-hosted, Linux, amd64]
strategy:
matrix:
rust: [stable]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
components: rustfmt
toolchain: ${{matrix.rust}}
- name: Cli tests
run: |
bash scripts/volo-cli-test.sh
coverage:
runs-on: [self-hosted, Linux, amd64]
timeout-minutes: 40
permissions:
contents: read
checks: write
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt, clippy
- uses: taiki-e/install-action@v2
with:
tool: cargo-llvm-cov
- uses: taiki-e/install-action@v2
with:
tool: cargo-nextest
- name: Generate coverage (LCOV + HTML)
run: |
bash scripts/coverage.sh
- uses: actions/upload-artifact@v4
with:
name: coverage-html
path: target/llvm-cov/html
- name: Upload to Codecov
uses: codecov/codecov-action@v4
with:
files: lcov.info
fail_ci_if_error: true
verbose: true