aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/cache-factory.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/cache-factory.yaml')
-rw-r--r--.github/workflows/cache-factory.yaml77
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 }}