name: Build and Lint on: push: branches: - master pull_request: jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: os: - ubuntu-latest - macos-latest rust-toolchain: - stable - nightly php: - '8.0' llvm: - '11.0' steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} - name: Setup Rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust-toolchain }} - name: Setup LLVM & Clang uses: KyleMayes/install-llvm-action@v1 with: version: ${{ matrix.llvm }} directory: ${{ runner.temp }}/llvm-${{ matrix.llvm }} - name: Build uses: actions-rs/cargo@v1 env: LIBCLANG_PATH: ${{ runner.temp }}/llvm-${{ matrix.llvm }}/lib with: command: build args: --release lint: name: Lint runs-on: ubuntu-latest strategy: matrix: llvm: - '11.0' steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: stable override: true components: rustfmt, clippy - name: Setup LLVM & Clang uses: KyleMayes/install-llvm-action@v1 with: version: ${{ matrix.llvm }} directory: ${{ runner.temp }}/llvm-${{ matrix.llvm }} - name: Run rustfmt uses: actions-rs/cargo@v1 env: LIBCLANG_PATH: ${{ runner.temp }}/llvm-${{ matrix.llvm }}/lib with: command: fmt args: --all -- --check - name: Run clippy uses: actions-rs/cargo@v1 env: LIBCLANG_PATH: ${{ runner.temp }}/llvm-${{ matrix.llvm }}/lib with: command: clippy args: -- -D warnings