diff options
Diffstat (limited to '.github/workflows/cache-factory.yaml')
-rw-r--r-- | .github/workflows/cache-factory.yaml | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/.github/workflows/cache-factory.yaml b/.github/workflows/cache-factory.yaml new file mode 100644 index 0000000..d2535ab --- /dev/null +++ b/.github/workflows/cache-factory.yaml @@ -0,0 +1,77 @@ +# This workflow _produces_ caches which are used to speed up pull request builds. +# Originally from https://github.com/libp2p/rust-libp2p/blob/master/.github/workflows/cache-factory.yml + +name: Cache Factory + +on: + push: + paths: + - 'Cargo.lock' + - './scripts/setup.sh' + - './scripts/setup.ps1' + - '.github/workflows/cache-factory.yaml' + - '.github/actions/**/*.yml' + - '.github/actions/**/*.yaml' + - '**/build.rs' + - 'core/prisma/**' + branches: + - main + +# Cancel previous runs of the same workflow on the same branch. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + make_cache: + strategy: + fail-fast: true + matrix: + settings: + - host: macos-latest + target: x86_64-apple-darwin + - host: macos-latest + target: aarch64-apple-darwin + - host: windows-latest + target: x86_64-pc-windows-msvc + - host: ubuntu-20.04 + target: x86_64-unknown-linux-gnu + name: 'Make Cache' + runs-on: ${{ matrix.settings.host }} + steps: + - name: Maximize build space + if: ${{ runner.os == 'Linux' }} + uses: easimon/maximize-build-space@master + with: + swap-size-mb: 3072 + root-reserve-mb: 6144 + remove-dotnet: 'true' + remove-codeql: 'true' + remove-haskell: 'true' + remove-docker-images: 'true' + + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Symlink target to C:\ + if: ${{ runner.os == 'Windows' }} + shell: powershell + run: | + New-Item -ItemType Directory -Force -Path C:\nexus_target + New-Item -Path target -ItemType Junction -Value C:\nexus_target + + - name: Setup System and Rust + uses: ./.github/actions/setup-system + with: + token: ${{ secrets.GITHUB_TOKEN }} + target: ${{ matrix.settings.target }} + save-cache: 'true' + + - name: Clippy + run: cargo clippy --workspace --all-features --target ${{ matrix.settings.target }} + + - name: Compile (debug) + run: cargo test --workspace --all-features --no-run --target ${{ matrix.settings.target }} + + - name: Compile (release) + run: cargo test --workspace --all-features --no-run --release --target ${{ matrix.settings.target }} |