Skip to content

Commit

Permalink
ci: improve yarn cache handling
Browse files Browse the repository at this point in the history
  • Loading branch information
scolladon committed May 11, 2023
1 parent fa248bf commit 64fd974
Show file tree
Hide file tree
Showing 4 changed files with 924 additions and 9 deletions.
51 changes: 44 additions & 7 deletions .github/actions/install/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,60 @@ inputs:
runs:
using: composite
steps:
- name: ⚙️ Enable Corepack
run: corepack enable
shell: bash

- name: Cache prep
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
id: yarn-config
run: |
echo "CACHE_FOLDER=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
shell: bash
env:
YARN_ENABLE_GLOBAL_CACHE: 'false'

- name: Restore yarn cache
uses: actions/cache@v3
with:
path: ${{ steps.yarn-config.outputs.CACHE_FOLDER }}
key: yarn-download-cache-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}
restore-keys: |
yarn-download-cache-
- name: Restore node_modules
id: yarn-nm-cache
uses: actions/cache@v3
with:
path: **/node_modules
key: yarn-nm-cache-${{ runner.os }}-${{ inputs.node-version }}-${{ github.ref }}-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}

- name: Cache yarn
- name: Restore yarn install state
id: yarn-install-state-cache
uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: cache-${{ inputs.node-version }}-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
path: .yarn/ci-cache
key: yarn-install-state-cache-${{ runner.os }}-${{ inputs.node-version }}-${{ github.ref }}-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}

- name: Install dependencies in production mode
if: ${{ inputs.prod-context == 'true' }}
run: yarn install --immutable --immutable-cache --check-cache --frozen-lockfile --prod
run: yarn install --immutable --immutable-cache --check-cache --prod
shell: bash
env:
# Overrides/align yarnrc.yml options (v3, v4) for a CI context
YARN_ENABLE_GLOBAL_CACHE: 'false' # Use local cache folder to keep downloaded archives
YARN_NM_MODE: 'hardlinks-local' # Reduce node_modules size
YARN_INSTALL_STATE_PATH: '.yarn/ci-cache/install-state.gz' # Might speed up resolution step when node_modules present
# Other environment variables
HUSKY: '0' # By default do not run HUSKY install

- name: Install dependencies in integration mode
if: ${{ inputs.prod-context == 'false' }}
run: yarn install --immutable --immutable-cache --check-cache --frozen-lockfile
run: yarn install --immutable --immutable-cache --check-cache
shell: bash
env:
# Overrides/align yarnrc.yml options (v3, v4) for a CI context
YARN_ENABLE_GLOBAL_CACHE: 'false' # Use local cache folder to keep downloaded archives
YARN_NM_MODE: 'hardlinks-local' # Reduce node_modules size
YARN_INSTALL_STATE_PATH: '.yarn/ci-cache/install-state.gz' # Might speed up resolution step when node_modules present
# Other environment variables
HUSKY: '0' # By default do not run HUSKY install
4 changes: 4 additions & 0 deletions .github/linters/.cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,13 @@
"Cherfaoui",
"Colladon",
"Commitlint",
"Corepack",
"corepack",
"FORCEIGNORE",
"FORCEINCLUDE",
"FULLNAME",
"Flexi",
"hardlinks",
"Iframe",
"METAFILE",
"Mehdi",
Expand Down Expand Up @@ -141,6 +144,7 @@
"weblinks",
"wlens",
"xmlbuilder",
"yarnrc",
"\u00c0gain"
]
}
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
/node_modules
/reports
/lib
/.yarn
/.nyc_output
/.yarn/cache
install-state.gz
*-debug.log
*-error.log
sfdx-git-delta-*.tgz
/.nyc_output
stderr*.txt
stdout*.txt
# stryker temp files
Expand Down
873 changes: 873 additions & 0 deletions .yarn/releases/yarn-3.5.1.cjs

Large diffs are not rendered by default.

0 comments on commit 64fd974

Please sign in to comment.