name: Cached yarn runs: using: composite steps: - name: Cache node modules id: cacheNodeModules uses: actions/cache@v2 with: path: '**/node_modules' key: ${{ runner.os }}-cacheNodeModules-${{ hashFiles('.yarnrc', 'remote/.yarnrc', '**/yarn.lock', '!**/node_modules/**/yarn.lock', '!**/.*/**/yarn.lock') }} restore-keys: ${{ runner.os }}-cacheNodeModules- - name: Cache /build/ scripts id: cacheBuildScripts uses: actions/cache@v2 with: path: build/**/*.js key: ${{ runner.os }}-cacheBuildScripts-${{ hashFiles('build/yarn.lock', 'build/tsconfig.json', 'build/tsconfig.build.json', 'build/**/*.ts', '!**/node_modules/**/*.ts') }} - name: Execute yarn if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' || steps.cacheBuildScripts.outputs.cache-hit != 'true' }} env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 run: yarn --frozen-lockfile