name: build on: push: paths: - 'src/**' - 'tests/**' - '.github/**' - 'Cargo.toml' - 'Cargo.lock' branches: - '**' pull_request: paths: - 'src/**' - 'tests/**' - '.github/**' - 'Cargo.toml' - 'Cargo.lock' jobs: windows: runs-on: windows-latest strategy: matrix: target: - x86_64-pc-windows-gnu - x86_64-pc-windows-msvc steps: - uses: actions/checkout@v3 - name: Cache Cargo uses: actions/cache@v3 with: path: | ~/.cargo/registry ./target # Example key: windows-stable-x86_64-pc-windows-gnu-3k4j234lksjfd9 key: windows-stable-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | windows-stable-${{ matrix.target }}- windows-stable- windows- - name: Set Rust Channel run: rustup default stable shell: bash - name: Set Rust Target run: rustup target add ${{ matrix.target }} shell: bash - name: Build run: cargo build --target ${{ matrix.target }} shell: bash - name: Test run: cargo test --target ${{ matrix.target }} shell: bash macos: runs-on: macos-latest strategy: matrix: target: - x86_64-apple-darwin steps: - uses: actions/checkout@v3 - name: Cache Cargo uses: actions/cache@v3 with: path: | ~/.cargo/registry ./target # Example key: macos-stable-x86_64-apple-darwin-3k4j234lksjfd9 key: macos-stable-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | macos-stable-${{ matrix.target }}- macos-stable- macos- - name: Set Rust Channel run: rustup default stable - name: Set Rust Target run: rustup target add ${{ matrix.target }} - name: Build run: cargo build --target ${{ matrix.target }} - name: Test run: cargo test --target ${{ matrix.target }} linux: runs-on: ubuntu-latest strategy: matrix: target: - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl steps: - uses: actions/checkout@v3 - name: Cache Cargo uses: actions/cache@v3 with: path: | ~/.cargo/registry ./target # Example key: linux-stable-x86_64-unknown-linux-gnu-3k4j234lksjfd9 key: linux-stable-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | linux-stable-${{ matrix.target }}- linux-stable- linux- - name: Set Rust Channel run: rustup default stable - name: Set Rust Target run: rustup target add ${{ matrix.target }} - name: Build run: cargo build --target ${{ matrix.target }} - name: Test run: cargo test --target ${{ matrix.target }}