name: Test suite on: workflow_dispatch: pull_request: push: branches: - main tags-ignore: - "*" env: CARGO_TERM_COLOR: always CARGO_UNSTABLE_SPARSE_REGISTRY: "true" concurrency: group: ${{ github.workflow }}-${{ github.ref || github.run_id }} cancel-in-progress: true jobs: test: strategy: matrix: platform: - macos - ubuntu - windows toolchain: - stable - 1.61.0 name: Test ${{ matrix.platform }} with Rust ${{ matrix.toolchain }} runs-on: "${{ matrix.platform }}-latest" steps: - uses: actions/checkout@v3 - name: Configure toolchain run: | rustup toolchain install ${{ matrix.toolchain }} --profile minimal --no-self-update rustup default ${{ matrix.toolchain }} # https://github.com/actions/cache/issues/752 - if: ${{ runner.os == 'Windows' }} name: Use GNU tar shell: cmd run: | echo "Adding GNU tar to PATH" echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%" - name: Cargo caching uses: actions/cache@v3 with: path: | ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ key: ${{ runner.os }}-cargo-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-${{ matrix.toolchain }}- ${{ runner.os }}-cargo- - name: Compilation caching uses: actions/cache@v3 with: path: target/ key: ${{ runner.os }}-target-${{ matrix.toolchain }}-${{ hashFiles('**/Cargo.lock') }} - name: Run test suite run: cargo test - name: Check that CLI runs run: cargo run -p watchexec-cli -- -1 echo cross-checks: name: Checks only against select targets runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Configure toolchain run: | rustup toolchain install --profile minimal --no-self-update stable rustup default stable sudo apt-get install -y musl-tools rustup target add x86_64-unknown-linux-musl - name: Install cross uses: taiki-e/install-action@v2 with: tool: cross - name: Cargo caching uses: actions/cache@v3 with: path: | ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ key: ${{ runner.os }}-cargo-stable-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-stable- ${{ runner.os }}-cargo- - run: cargo check --target x86_64-unknown-linux-musl - run: cross check --target x86_64-unknown-freebsd - run: cross check --target x86_64-unknown-netbsd