mirror of https://github.com/actions/toolkit
61 lines
2.0 KiB
YAML
61 lines
2.0 KiB
YAML
|
name: cache-unit-tests
|
||
|
on: push
|
||
|
|
||
|
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@v2
|
||
|
|
||
|
- name: Set Node.js 12.x
|
||
|
uses: actions/setup-node@v1
|
||
|
with:
|
||
|
node-version: 12.x
|
||
|
|
||
|
# In order to save & restore cache artifacts 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
|
||
|
|
||
|
- name: Compile cache package
|
||
|
run: |
|
||
|
npm ci
|
||
|
npm run tsc
|
||
|
working-directory: packages/cache
|
||
|
|
||
|
- name: Generate files in working directory
|
||
|
shell: bash
|
||
|
run: scripts/create-cache-files.sh ${{ runner.os }} test-cache
|
||
|
|
||
|
- name: Generate files outside working directory
|
||
|
shell: bash
|
||
|
run: scripts/create-cache-files.sh ${{ runner.os }} ~/test-cache
|
||
|
|
||
|
# We're using node -e to call the functions directly available in the @actions/cache package
|
||
|
- name: Save cache using saveCache()
|
||
|
run: |
|
||
|
node -e "Promise.resolve(require('./packages/cache/lib/cache').saveCache(['test-cache','~/test-cache'],'test-${{ runner.os }}-${{ github.run_id }}'))"
|
||
|
|
||
|
- name: Restore cache using restoreCache()
|
||
|
run: |
|
||
|
node -e "Promise.resolve(require('./packages/cache/lib/cache').restoreCache(['test-cache','~/test-cache'],'test-${{ runner.os }}-${{ github.run_id }}'))"
|
||
|
|
||
|
- name: Verify cache
|
||
|
shell: bash
|
||
|
run: |
|
||
|
scripts/verify-cache-files.sh ${{ runner.os }} test-cache
|
||
|
scripts/verify-cache-files.sh ${{ runner.os }} ~/test-cache
|