mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2024-09-20 07:16:17 +08:00
perf(ci): cache dependencies (#5653)
* add dependency cache * ci trigger * ci * run scripts, no clean, ci trigger * assets * missing dependency * ci, trigger * trigger * a * typos * ci * flags * ci * trigger * needs pre-ci * ci, trigger * v4, trigger * update action versions * revert test changes
This commit is contained in:
parent
bdaca701cb
commit
ac0e24e388
107
.github/workflows/monkey-ci.yml
vendored
107
.github/workflows/monkey-ci.yml
vendored
|
@ -33,7 +33,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dorny/paths-filter@v2
|
||||
- uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
|
@ -62,20 +62,58 @@ jobs:
|
|||
echo "should-build-fe=${{ steps.filter.outputs.fe-src }}" >> $GITHUB_OUTPUT
|
||||
echo "assets-json=${{ steps.filter.outputs.json }}" >> $GITHUB_OUTPUT
|
||||
|
||||
prime-cache:
|
||||
name: prime-cache
|
||||
runs-on: ubuntu-latest
|
||||
needs: [pre-ci]
|
||||
if: needs.pre-ci.outputs.should-build-be == 'true' || needs.pre-ci.outputs.should-build-fe == 'true' || needs.pre-ci.outputs.should-build-pkg == 'true' || needs.pre-ci.outputs.assets-json == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache node modules
|
||||
id: cache-npm
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
|
||||
name: Install dependencies
|
||||
run: npm install --prefer-offline --no-audit
|
||||
|
||||
ci-be:
|
||||
name: ci-be
|
||||
needs: [pre-ci]
|
||||
needs: [pre-ci, prime-cache]
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.pre-ci.outputs.should-build-be == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache node modules
|
||||
id: cache-npm
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
run: npm install --prefer-offline --no-audit
|
||||
|
||||
- name: Check pretty
|
||||
run: npm run pretty-code-be
|
||||
|
@ -91,13 +129,13 @@ jobs:
|
|||
|
||||
ci-fe:
|
||||
name: ci-fe
|
||||
needs: [pre-ci]
|
||||
needs: [pre-ci, prime-cache]
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.pre-ci.outputs.should-build-fe == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
|
@ -105,8 +143,21 @@ jobs:
|
|||
working-directory: ./frontend/src/ts/constants
|
||||
run: mv ./firebase-config-example.ts ./firebase-config.ts && cp ./firebase-config.ts ./firebase-config-live.ts
|
||||
|
||||
- name: Cache node modules
|
||||
id: cache-npm
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
run: npm install --prefer-offline --no-audit
|
||||
|
||||
- name: Check pretty
|
||||
run: npm run pretty-code-fe
|
||||
|
@ -122,12 +173,12 @@ jobs:
|
|||
|
||||
ci-assets:
|
||||
name: ci-assets
|
||||
needs: [pre-ci]
|
||||
needs: [pre-ci, prime-cache]
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.pre-ci.outputs.assets-json == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dorny/paths-filter@v2
|
||||
- uses: dorny/paths-filter@v3
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
|
@ -142,12 +193,25 @@ jobs:
|
|||
- 'frontend/static/challenges/*.json'
|
||||
- 'frontend/static/layouts/*.json'
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache node modules
|
||||
id: cache-npm
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
run: npm install --prefer-offline --no-audit
|
||||
|
||||
- name: Lint JSON
|
||||
run: npm run pr-check-lint-json
|
||||
|
@ -166,18 +230,31 @@ jobs:
|
|||
|
||||
ci-pkg:
|
||||
name: ci-pkg
|
||||
needs: [pre-ci]
|
||||
needs: [pre-ci, prime-cache]
|
||||
runs-on: ubuntu-latest
|
||||
if: needs.pre-ci.outputs.should-build-pkg == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
- name: Cache node modules
|
||||
id: cache-npm
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
run: npm install --prefer-offline --no-audit
|
||||
|
||||
- name: Check pretty
|
||||
run: npm run pretty-code-pkg
|
||||
|
@ -195,7 +272,7 @@ jobs:
|
|||
permissions: write-all
|
||||
name: on-failure
|
||||
runs-on: ubuntu-latest
|
||||
needs: [ci-be, ci-fe, ci-assets]
|
||||
needs: [ci-be, ci-fe, ci-assets, ci-pkg]
|
||||
if: ${{ always() && contains(needs.*.result, 'failure') && github.ref != 'refs/heads/master' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
|
2
.github/workflows/pretty-fix.yml
vendored
2
.github/workflows/pretty-fix.yml
vendored
|
@ -21,7 +21,7 @@ jobs:
|
|||
echo "PR_TITLE=Prettier Fix - $(date)" >> $GITHUB_ENV
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "18.20.4"
|
||||
|
||||
|
|
Loading…
Reference in a new issue