{{{{raw}}}} name: Test on: push: branches: - main pull_request: branches: - main - dev paths-ignore: - 'webview-src/**' - 'webview-dist/**' - 'examples/**' jobs: build-and-test: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v2 - name: Install stable toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Install gtk on Ubuntu if: matrix.os == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install -y webkit2gtk-4.0 - name: Get current date if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' run: echo "CURRENT_DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - name: Get current date if: matrix.os == 'windows-latest' run: echo "CURRENT_DATE=$(Get-Date -Format "yyyy-MM-dd")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: Cache cargo registry uses: actions/cache@v2 with: path: ~/.cargo/registry # Add date to the cache to keep it up to date key: ${{ matrix.os }}-${{ matrix.rust }}-cargo-registry-${{ hashFiles('**/Cargo.toml') }}-${{ env.CURRENT_DATE }} # Restore from outdated cache for speed restore-keys: | ${{ matrix.os }}-${{ matrix.rust }}-cargo-registry-${{ hashFiles('**/Cargo.toml') }} - name: Cache cargo index uses: actions/cache@v2 with: path: ~/.cargo/git # Add date to the cache to keep it up to date key: ${{ matrix.os }}-${{ matrix.rust }}-cargo-index-${{ hashFiles('**/Cargo.toml') }}-${{ env.CURRENT_DATE }} # Restore from outdated cache for speed restore-keys: | ${{ matrix.os }}-${{ matrix.rust }}-cargo-index-${{ hashFiles('**/Cargo.toml') }} - name: Cache cargo target uses: actions/cache@v2 with: path: ${{ matrix.project}}/target # Add date to the cache to keep it up to date key: ${{ matrix.os }}-${{ matrix.rust }}-cargo-build-target-${{ hashFiles('**/Cargo.toml') }}-${{ env.CURRENT_DATE }} # Restore from outdated cache for speed restore-keys: | ${{ matrix.os }}-${{ matrix.rust }}-cargo-build-target-${{ hashFiles('**/Cargo.toml') }} - name: Run tests uses: actions-rs/cargo@v1 with: command: test args: --manifest-path=Cargo.toml --release {{{{/raw}}}}