Restructure pipelines and badges

- Seperate test pipeline into E2E, integration and unit test pipelines.
- Improve documenetation for pipelines (ci-cd.md).
- Introduce naming convention for worklow files and names.
- Center badges with multiple files on README file.
This commit is contained in:
undergroundwires
2021-12-19 01:48:29 +01:00
parent ddd2e704db
commit 5a2c263af3
10 changed files with 169 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
name: Quality checks
name: quality-checks
on: [ push, pull_request ]

View File

@@ -1,4 +1,4 @@
name: Security checks
name: security-checks
on:
push:

View File

@@ -1,4 +1,4 @@
name: Deploy desktop
name: desktop-release
on:
release:

View File

@@ -1,4 +1,4 @@
name: Bump & release
name: git-release
on:
push: # Ensure a new release is created for each new tag

View File

@@ -1,4 +1,4 @@
name: Deploy site
name: site-release
on:
release:

28
.github/workflows/tests.e2e.yaml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: e2e-tests
on:
push:
pull_request:
jobs:
run-tests:
strategy:
matrix:
os: [macos, ubuntu, windows]
fail-fast: false # So it still runs on other OSes if one of them fails
runs-on: ${{ matrix.os }}-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Setup node
uses: actions/setup-node@v1
with:
node-version: 15.x
-
name: Install dependencies
run: npm ci
-
name: Run e2e tests
run: npm run test:e2e -- --headless

View File

@@ -1,9 +1,9 @@
name: Test
name: integration-tests
on:
push:
pull_request:
schedule: # for integration tests
schedule: # To get notified about problems from third party dependencies
- cron: '0 0 * * 0' # at 00:00 on every Sunday
jobs:
@@ -25,13 +25,6 @@ jobs:
-
name: Install dependencies
run: npm ci
-
name: Run unit tests
run: npm run test:unit
-
name: Run integration tests
run: npm run test:integration
-
name: Run e2e tests
if: always() # Run even if previous step fail
run: npm run test:e2e -- --headless

28
.github/workflows/tests.unit.yaml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: unit-tests
on:
push:
pull_request:
jobs:
run-tests:
strategy:
matrix:
os: [macos, ubuntu, windows]
fail-fast: false # So it still runs on other OSes if one of them fails
runs-on: ${{ matrix.os }}-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Setup node
uses: actions/setup-node@v1
with:
node-version: 15.x
-
name: Install dependencies
run: npm ci
-
name: Run units
run: npm run test:unit