-
Notifications
You must be signed in to change notification settings - Fork 27
109 lines (95 loc) · 3.28 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
name: Test
env:
HUSKY: 0
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches:
- main
paths:
- "packages/**/*"
- "config/*"
- "*.json"
- ".github/workflows/test.yml"
jobs:
test:
name: Test ${{ matrix.package }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
package:
[
"docusaurus",
"core",
"diff",
"printer-legacy",
"utils",
"helpers",
"logger",
"graphql",
]
steps:
- name: Checkout Code Base
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup NodeJS LTS
uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "npm"
- name: Install modules
run: npm ci
- name: Run Unit Tests
id: unit
run: |
npm run test:ci /unit/ -- --coverage --reporters="github-actions" --reporters="summary" --selectProjects @graphql-markdown/${{ matrix.package }}
[ ! -d "./coverage/" ] && echo "skipped=1" >> "$GITHUB_OUTPUT" && exit 0
mkdir -p packages/${{ matrix.package }}/.nyc_output/unit
mv ./coverage/coverage-final.json packages/${{ matrix.package }}/.nyc_output/unit.json
- name: Run Integration Tests
id: integration
run: |
npm run test:ci /integration/ -- --coverage --reporters="github-actions" --reporters="summary" --selectProjects @graphql-markdown/${{ matrix.package }}
[ ! -d "./coverage/" ] && echo "skipped=1" >> "$GITHUB_OUTPUT" && exit 0
mkdir -p packages/${{ matrix.package }}/.nyc_output/integration
mv ./coverage/coverage-final.json packages/${{ matrix.package }}/.nyc_output/integration.json
- name: Check Code Coverage
id: coverage
if: ${{ !steps.unit.outputs.skipped && !steps.integration.outputs.skipped }}
run: |
[ ! -d "packages/${{ matrix.package }}/.nyc_output" ] && echo "skipped=1" >> "$GITHUB_OUTPUT" && exit 0
cd packages/${{ matrix.package }}
npx -y --quiet nyc merge .nyc_output .nyc_output/coverage.json
npx -y --quiet nyc report --reporter=lcov --reporter=text --temp-dir .nyc_output
- name: SonarCloud Scan
id: sonarcloud
uses: SonarSource/sonarcloud-github-action@v3.0.0
with:
projectBaseDir: ${{ github.workspace }}
args: >
-Dsonar.organization=graphql-markdown
-Dsonar.projectKey=graphql-markdown_${{ matrix.package }}
-Dsonar.sources=./packages/${{ matrix.package }}/src
-Dsonar.tests=./packages/${{ matrix.package }}/tests
-Dsonar.javascript.lcov.reportPaths=./packages/${{ matrix.package }}/coverage/lcov.info
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
build:
name: Mock Build
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout Code Base
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "npm"
- name: Install modules
run: npm ci
- name: TS Build
run: npm run build