name: ci on: push: branches: [main] pull_request: workflow_dispatch: jobs: ci: name: ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - uses: actions-rs/toolchain@v1 if: ${{ matrix.os == 'windows-latest' }} with: toolchain: stable components: rustfmt, clippy profile: minimal override: true - uses: cachix/install-nix-action@v15 if: ${{ matrix.os != 'windows-latest' }} with: nix_path: nixpkgs=channel:nixpkgs-unstable - run: cargo xtask ci if: ${{ matrix.os == 'windows-latest' }} - run: nix-shell --cores 0 --pure --run 'rm -rf ~/.cargo/bin; cargo xtask ci' if: ${{ matrix.os != 'windows-latest' }}