Skip to content

Commit

Permalink
feat(pull-request-check): cache module installation to improve perfor…
Browse files Browse the repository at this point in the history
…mance (#53)
  • Loading branch information
Kordrad authored Jun 20, 2024
1 parent 9336578 commit c82c279
Showing 1 changed file with 58 additions and 14 deletions.
72 changes: 58 additions & 14 deletions .github/workflows/pull-request-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,68 +9,112 @@ env:
RETENTION_DAYS: 30

jobs:
lint:
install:
runs-on: ubuntu-latest
outputs:
cache-key: ${{ steps.cache-key.outputs.cache-key }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
node-version: ${{ env.NODE_VERSION }}
- id: cache-key
run: echo "::set-output name=cache-key::$(echo ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-cache-$(sha256sum package-lock.json | cut -d' ' -f1))"
- uses: actions/cache@v4
id: npm-cache
with:
path: |
node_modules
~/.npm
key: ${{ steps.cache-key.outputs.cache-key }}
restore-keys: |
${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-cache-
- run: npm ci

lint:
needs: install
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- uses: actions/cache@v4
with:
path: |
node_modules
~/.npm
key: ${{ needs.install.outputs.cache-key }}
- run: npm run lint
- uses: actions/upload-artifact@v4
if: always()
with:
name: lint-report
path: lint-report/
retention-days: ${{env.RETENTION_DAYS}}
retention-days: ${{ env.RETENTION_DAYS }}

performance:
needs: install
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- run: npm ci
node-version: ${{ env.NODE_VERSION }}
- uses: actions/cache@v4
with:
path: |
node_modules
~/.npm
key: ${{ needs.install.outputs.cache-key }}
- run: npm run performance
- uses: actions/upload-artifact@v4
if: always()
with:
name: performance-report
path: performance-report/
retention-days: ${{env.RETENTION_DAYS}}
retention-days: ${{ env.RETENTION_DAYS }}

test:
needs: install
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- run: npm ci
node-version: ${{ env.NODE_VERSION }}
- uses: actions/cache@v4
with:
path: |
node_modules
~/.npm
key: ${{ needs.install.outputs.cache-key }}
- run: npm run test
- uses: actions/upload-artifact@v4
if: always()
with:
name: test-report
path: test-report/
retention-days: ${{env.RETENTION_DAYS}}
retention-days: ${{ env.RETENTION_DAYS }}

build:
needs: [lint, performance, test]
needs: [install, lint, performance, test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- run: npm ci
node-version: ${{ env.NODE_VERSION }}
- uses: actions/cache@v4
with:
path: |
node_modules
~/.npm
key: ${{ needs.install.outputs.cache-key }}
- run: npm run build
- uses: actions/upload-artifact@v4
if: always()
with:
name: build-report
path: build-report/
retention-days: ${{env.RETENTION_DAYS}}

retention-days: ${{ env.RETENTION_DAYS }}

0 comments on commit c82c279

Please sign in to comment.