name: Rust on: workflow_dispatch: push: pull_request: branches: [ "main" ] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta - nightly steps: - name: cache protoc bin id: cache-protoc-action uses: actions/cache@v3 env: cache-name: cache-protoc-action-bin with: path: /usr/local/bin/protoc key: ${{ runner.os }}-build-${{ env.cache-name }}-v0.0.1 - name: install protoc if: steps.cache-protoc-action.outputs.cache-hit != 'true' run: | wget https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-x86_64.zip unzip protoc-27.0-linux-x86_64.zip -d protoc3 mv protoc3/bin/* /usr/local/bin/ chmod +x /usr/local/bin/protoc rm -rf protoc-27.0-linux-x86_64.zip protoc3 - name: print protoc version run: protoc --version - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true components: rustfmt, clippy - uses: actions-rs/cargo@v1 with: command: build args: --verbose - uses: actions-rs/cargo@v1 with: command: test args: --all --verbose