name: Linux-CI on: push: paths-ignore: - 'ansible/**' - 'doc/**' - 'demo/**' - 'scripts/**' - 'g3proxy/doc/**' - 'g3tiles/doc/**' branches: - 'master' - 'rel/**' - 'lts/**' pull_request: branches: - 'master' - 'rel/**' - 'lts/**' env: CARGO_TERM_COLOR: always jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta - nightly steps: - name: Checkout sources uses: actions/checkout@v4 with: submodules: true - name: Install ${{ matrix.rust }} toolchain uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} - name: Install dependencies run: | sudo apt-get update sudo apt-get install capnproto libc-ares-dev libssl-dev liblua5.4-dev - name: Cargo build run: cargo build - name: Cargo test run: cargo test --workspace clippy: name: Clippy runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 with: submodules: true - name: Install stable toolchain uses: dtolnay/rust-toolchain@stable with: components: clippy - name: Install dependencies run: | sudo apt-get update sudo apt-get install capnproto libc-ares-dev libssl-dev liblua5.4-dev - name: Cargo clippy run: cargo clippy --tests -- --deny warnings build-vendored: name: Build vendored runs-on: ubuntu-latest strategy: matrix: feature: - vendored-openssl - vendored-tongsuo - vendored-aws-lc - vendored-boringssl component: - g3proxy - g3bench - g3tiles - g3fcgen - g3mkcert - g3keymess include: - feature: vendored-c-ares component: g3proxy steps: - name: Checkout sources uses: actions/checkout@v4 with: submodules: true - name: Install stable toolchain uses: dtolnay/rust-toolchain@stable with: components: clippy - name: Install dependencies run: | sudo apt-get update sudo apt-get install capnproto libc-ares-dev libssl-dev liblua5.4-dev - name: Cargo build run: cargo build --no-default-features --features ${{ matrix.feature }} -p ${{ matrix.component }} - name: Cargo clippy run: cargo clippy --no-default-features --features ${{ matrix.feature }} -p ${{ matrix.component }} -- --deny warnings