name: cache-unit-tests on: push: branches: - main paths-ignore: - '**.md' pull_request: paths-ignore: - '**.md' jobs: build: name: Build strategy: matrix: runs-on: [ubuntu-latest, windows-latest, macOS-latest] fail-fast: false runs-on: ${{ matrix.runs-on }} steps: - name: Checkout uses: actions/checkout@v5 - name: Set Node.js 24.x uses: actions/setup-node@v5 with: node-version: 24.x # In order to save & restore cache from a shell script, certain env variables need to be set that are only available in the # node context. This runs a local action that gets and sets the necessary env variables that are needed - name: Set env variables uses: ./packages/cache/__tests__/__fixtures__/ # Need root node_modules because certain npm packages like jest are configured for the entire repository and it won't be possible # without these to just compile the cache package - name: Install root npm packages run: npm ci # We need to install only runtime dependencies (omit dev dependencies) to verify that what we're shipping is all # that is needed - name: Compile cache package run: | npm ci --omit=dev npm run tsc working-directory: packages/cache - name: Generate files in working directory shell: bash run: packages/cache/__tests__/create-cache-files.sh ${{ runner.os }} test-cache - name: Generate files outside working directory shell: bash run: packages/cache/__tests__/create-cache-files.sh ${{ runner.os }} ~/test-cache - name: Save cache using saveCache() run: node packages/cache/__tests__/save-cache.mjs ${{ runner.os }} ${{ github.run_id }} - name: Delete cache folders before restoring shell: bash run: | rm -rf test-cache rm -rf ~/test-cache - name: Restore cache using restoreCache() with http-client run: node packages/cache/__tests__/restore-cache.mjs ${{ runner.os }} ${{ github.run_id }} false - name: Verify cache restored with http-client shell: bash run: | packages/cache/__tests__/verify-cache-files.sh ${{ runner.os }} test-cache packages/cache/__tests__/verify-cache-files.sh ${{ runner.os }} ~/test-cache - name: Delete cache folders before restoring shell: bash run: | rm -rf test-cache rm -rf ~/test-cache - name: Restore cache using restoreCache() with Azure SDK run: node packages/cache/__tests__/restore-cache.mjs ${{ runner.os }} ${{ github.run_id }} true - name: Verify cache restored with Azure SDK shell: bash run: | packages/cache/__tests__/verify-cache-files.sh ${{ runner.os }} test-cache packages/cache/__tests__/verify-cache-files.sh ${{ runner.os }} ~/test-cache