Merge pull request #136 (ci: Automatische unit testing) from SELab-2/github-actions/testing
ci: Automatische unit testing
This commit is contained in:
commit
219a26361c
3 changed files with 102 additions and 0 deletions
45
.github/workflows/backend-testing.yml
vendored
Normal file
45
.github/workflows/backend-testing.yml
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
# This workflow will do a clean installation of node dependencies, cache/restore them, run backend tests across different versions of node (here 22.x)
|
||||
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
|
||||
|
||||
name: Backend Testing
|
||||
|
||||
# Workflow runs when:
|
||||
# - a backend js/ts file on "dev" changes
|
||||
# - a non-draft PR to "dev" with backend js/ts files is opened, is reopened, or changes
|
||||
# - a draft PR to "dev" with backend js/ts files is marked as ready for review
|
||||
on:
|
||||
push:
|
||||
branches: [ "dev" ]
|
||||
paths:
|
||||
- 'backend/src/**.[jt]s'
|
||||
- 'backend/tests/**.[jt]s'
|
||||
- 'backend/vitest.config.ts'
|
||||
pull_request:
|
||||
branches: [ "dev" ]
|
||||
types: ["synchronize", "ready_for_review", "opened", "reopened"]
|
||||
paths:
|
||||
- 'backend/src/**.[jt]s'
|
||||
- 'backend/tests/**.[jt]s'
|
||||
- 'backend/vitest.config.ts'
|
||||
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Run backend unit tests
|
||||
if: '! github.event.pull_request.draft'
|
||||
runs-on: [self-hosted, Linux, X64]
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [22.x]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
- run: npm ci
|
||||
- run: npm run test:unit -w backend
|
54
.github/workflows/frontend-testing.yml
vendored
Normal file
54
.github/workflows/frontend-testing.yml
vendored
Normal file
|
@ -0,0 +1,54 @@
|
|||
# This workflow will do a clean installation of node dependencies, cache/restore them, run frontend tests across different versions of node (here 22.x)
|
||||
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
|
||||
|
||||
name: Frontend Testing
|
||||
|
||||
# Workflow runs when:
|
||||
# - a frontend js/ts/vue/css file on "dev" changes
|
||||
# - a non-draft PR to "dev" with frontend js/ts/vue/css files is opened, is reopened, or changes
|
||||
# - a draft PR to "dev" with frontend js/ts/vue/css files is marked as ready for review
|
||||
on:
|
||||
push:
|
||||
branches: [ "dev" ]
|
||||
paths:
|
||||
- 'frontend/src/**.[jt]s'
|
||||
- 'frontend/src/**.vue'
|
||||
- 'frontend/src/**.css'
|
||||
- 'frontend/tests/**.[jt]s'
|
||||
- 'frontend/tests/**.vue'
|
||||
- 'frontend/tests/**.css'
|
||||
- 'frontend/vitest.config.ts'
|
||||
- 'frontend/playwright.config.ts'
|
||||
pull_request:
|
||||
branches: [ "dev" ]
|
||||
types: ["synchronize", "ready_for_review", "opened", "reopened"]
|
||||
paths:
|
||||
- 'frontend/src/**.[jt]s'
|
||||
- 'frontend/src/**.vue'
|
||||
- 'frontend/src/**.css'
|
||||
- 'frontend/tests/**.[jt]s'
|
||||
- 'frontend/tests/**.vue'
|
||||
- 'frontend/tests/**.css'
|
||||
- 'frontend/vitest.config.ts'
|
||||
- 'frontend/playwright.config.ts'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Run frontend unit tests
|
||||
if: '! github.event.pull_request.draft'
|
||||
runs-on: [self-hosted, Linux, X64]
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [22.x]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'npm'
|
||||
- run: npm ci
|
||||
- run: npm run test:unit -w frontend
|
|
@ -11,4 +11,7 @@ export default defineConfig({
|
|||
"@": fileURLToPath(new URL("./src", import.meta.url)),
|
||||
},
|
||||
},
|
||||
build: {
|
||||
target: "esnext", //Browsers can handle the latest ES features
|
||||
},
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue