Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ci): add CI workflow for each new pull request #389

Merged
merged 22 commits into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d4185c1
feat(ci): add CI workflow for each new pull request
Thomasan1999 Sep 12, 2024
f57c44e
feat(ci): cache node_modules to avoid repeated installing
Thomasan1999 Sep 13, 2024
ff513e5
feat(ci): add npm install before every job
Thomasan1999 Sep 13, 2024
90984e4
feat(ci): try to retrieve cache instead of running npm install each time
Thomasan1999 Sep 13, 2024
c81230e
feat(ci): try to use actions/setup-node for npm caching
Thomasan1999 Sep 13, 2024
3451011
feat(ci): try to re-add npm install before every job to find out if i…
Thomasan1999 Sep 13, 2024
861e433
feat(ci): try to use custom cache again
Thomasan1999 Sep 13, 2024
c99d3e7
feat(ci): try to use 'npm install' for 'build' job
Thomasan1999 Sep 13, 2024
74a1371
feat(ci): try to change path for node modules cache
Thomasan1999 Sep 13, 2024
2da296f
feat(ci): try to include all node_modules directories
Thomasan1999 Sep 13, 2024
8197fb1
feat(ci): try to include all node_modules directories in all jobs
Thomasan1999 Sep 13, 2024
7771614
feat(ci): add composite action for NPM jobs to avoid code duplicity
Thomasan1999 Sep 13, 2024
3ea1e5f
feat(ci): add checkout before every calling prepare-npm-job action
Thomasan1999 Sep 13, 2024
03a59dd
revert(ci): revert incorrect 'on' trigger
Thomasan1999 Sep 13, 2024
82854bd
revert(ci): try putting checkout step back to 'prepare-npm-job' action
Thomasan1999 Sep 13, 2024
458147d
revert(ci): revert trying putting checkout step back to 'prepare-npm-…
Thomasan1999 Sep 13, 2024
498ec92
fix(ci): add '~/.npm' to cache paths as it is used by some dependencies
Thomasan1999 Sep 13, 2024
8ae5836
fix(ci): remove quotes from cache paths
Thomasan1999 Sep 13, 2024
05f4d14
fix(ci): add '~/.npm' also to cache job, not just restore cache job
Thomasan1999 Sep 13, 2024
7e35f59
fix(ci): update cache paths and try to store them in a variable
Thomasan1999 Sep 13, 2024
983b06b
refactor(ci): store cache key and restore-paths in environment variables
Thomasan1999 Sep 13, 2024
f132c58
revert(ci): store cache key and restore-paths in environment variables
Thomasan1999 Sep 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/actions/prepare-npm-job/action.yml
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-
111 changes: 111 additions & 0 deletions .github/workflows/ci.yml
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
12 changes: 8 additions & 4 deletions client/package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
{
"version": "0.0.0",
"scripts": {
"serve": "vite",
"build": "vite build --emptyOutDir",
"test:run": "vitest --run",
"test:watch": "vitest -w",
"format:base": "prettier . -write",
"format": "npm run format:base -- -write",
"format:check": "npm runformat:base -- -check",
"lint": "eslint",
"lint:fix": "eslint --fix",
"format": "prettier . -write",
"serve": "vite",
"test:run:base": "vitest --run",
"test:run": "run-p serve test:run:base --race",
"test:watch:base": "vitest -w",
"test:watch": "run-p serve test:watch:base",
"type-check": "vue-tsc --noEmit"
},
"dependencies": {
Expand Down
Loading