-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(ci): add CI workflow for each new pull request (#389)
* feat(ci): add CI workflow for each new pull request * feat(ci): cache node_modules to avoid repeated installing * feat(ci): add npm install before every job * feat(ci): try to retrieve cache instead of running npm install each time * feat(ci): try to use actions/setup-node for npm caching * feat(ci): try to re-add npm install before every job to find out if it will use the cache from prepare job * feat(ci): try to use custom cache again * feat(ci): try to use 'npm install' for 'build' job * feat(ci): try to change path for node modules cache * feat(ci): try to include all node_modules directories * feat(ci): try to include all node_modules directories in all jobs * feat(ci): add composite action for NPM jobs to avoid code duplicity * feat(ci): add checkout before every calling prepare-npm-job action * revert(ci): revert incorrect 'on' trigger * revert(ci): try putting checkout step back to 'prepare-npm-job' action * revert(ci): revert trying putting checkout step back to 'prepare-npm-job' action This reverts commit 82854bd. * fix(ci): add '~/.npm' to cache paths as it is used by some dependencies * fix(ci): remove quotes from cache paths * fix(ci): add '~/.npm' also to cache job, not just restore cache job * fix(ci): update cache paths and try to store them in a variable * refactor(ci): store cache key and restore-paths in environment variables * revert(ci): store cache key and restore-paths in environment variables This reverts commit 983b06b.
- Loading branch information
1 parent
0d968f1
commit 036f292
Showing
5 changed files
with
2,616 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
name: 'Prepare NPM job' | ||
runs: | ||
using: 'composite' | ||
steps: | ||
- name: Restore node modules cache | ||
uses: actions/cache@v4 | ||
with: | ||
path: ${{ env.CACHE_PATHS }} | ||
key: ${{ runner.os }}-node_modules-${{ hashFiles('package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-node_modules- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'master' | ||
pull_request: | ||
branches: | ||
- 'master' | ||
|
||
env: | ||
CACHE_PATHS: | | ||
**/node_modules | ||
~/.cache/puppeteer | ||
jobs: | ||
prepare: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Set up Node.js 20.x | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 20.x | ||
|
||
- name: Install dependencies | ||
run: npm install | ||
|
||
- name: Cache node modules | ||
id: cache | ||
uses: actions/cache@v4 | ||
with: | ||
path: ${{ env.CACHE_PATHS }} | ||
key: ${{ runner.os }}-node_modules-${{ hashFiles('package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-node_modules- | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
|
||
- name: Store the cache status | ||
id: set-cache-hit | ||
run: echo "CACHE_HIT=$CACHE_HIT" | ||
outputs: | ||
CACHE_PATHS: ${{ env.CACHE_PATHS }} | ||
|
||
build: | ||
runs-on: ubuntu-latest | ||
needs: prepare | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- uses: ./.github/actions/prepare-npm-job | ||
|
||
- name: Build project | ||
run: npm run build | ||
|
||
format-check: | ||
runs-on: ubuntu-latest | ||
needs: prepare | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- uses: ./.github/actions/prepare-npm-job | ||
|
||
- name: Check code format | ||
run: npm run format:check | ||
|
||
lint: | ||
runs-on: ubuntu-latest | ||
needs: prepare | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- uses: ./.github/actions/prepare-npm-job | ||
|
||
- name: Run linter | ||
run: npm run lint | ||
|
||
type-check: | ||
runs-on: ubuntu-latest | ||
needs: prepare | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- uses: ./.github/actions/prepare-npm-job | ||
|
||
- name: Check types | ||
run: npm run type-check | ||
|
||
test: | ||
runs-on: ubuntu-latest | ||
needs: prepare | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- uses: ./.github/actions/prepare-npm-job | ||
|
||
- name: Run tests | ||
run: npm run test:run |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.