forked from wso2/identity-apps
-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (116 loc) Β· 4.03 KB
/
pr-builder.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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name: PR Builder
on:
pull_request:
types: [opened, synchronize, labeled]
branches: [master]
paths-ignore:
- "**.md"
- "LICENSE"
concurrency:
group: pr-builder-${{ github.ref }}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
build:
name: π§ PR Build
if: ${{ github.event_name == 'pull_request' || github.event.label.name == 'trigger-pr-builder' }}
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [lts/*]
pnpm-version: [8.7.4]
maven-version: [3.8.6]
java-version: [11]
steps:
- name: β¬οΈ Checkout
id: checkout
uses: actions/[email protected]
with:
# We need to fetch all branches and commits so that Nx affected has a base to compare against.
fetch-depth: 0
- name: π’ Setup node
id: setup-node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: π³ Set SHAs for Nx
id: set-shas
uses: nrwl/nx-set-shas@v3
with:
main-branch-name: "master"
- name: π₯‘ Setup pnpm
id: setup-pnpm
uses: pnpm/[email protected]
with:
version: ${{ matrix.pnpm-version }}
run_install: false
- name: π Get pnpm store directory
id: get-pnpm-cache-dir
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- name: π Cache pnpm modules
uses: actions/cache@v3
id: pnpm-cache
with:
path: ${{ steps.get-pnpm-cache-dir.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: 𧩠Install Dependencies
id: install-dependencies
run: pnpm install
- name: π¦ Lint Changed Files
id: lint-changed-with-eslint
working-directory: .github/workflows
run: |
bash ./scripts/lint-changed.sh ${{ github.event.pull_request.number }}
# Temporarily disable linting all files as it is failing intermittently.
# - name: β³ Lint All Files
# run: pnpm nx affected --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} --plain --target=lint --parallel=3
- name: π· Build Re-usable Modules
id: build-reusable-modules
run: pnpm build:modules
- name: βοΈ Check Type Errors
run: pnpm nx affected --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} --target=typecheck --parallel=3
- name: π Run Jest & Collect Coverage
id: run-jest-test-and-coverage
# TODO: Update the command to "test:unit:coverage" once the coverage command related issues
# are sorted out
run: pnpm test:unit
- name: π€ Aggregate Test Coverage
# TODO: Enable this step once the coverage command related issues are fixed
if: false
id: aggregate-coverage-reports
run: |
pnpm test:unit:coverage:aggregate
pnpm nyc:text-summary-report
pnpm nyc:text-report
- name: β Set up JDK 11
id: jdk-setup
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: "adopt"
cache: maven
- name: 𦩠Set up Maven
uses: stCarolas/setup-maven@v4
id: mvn-setup
with:
maven-version: ${{ matrix.maven-version }}
- name: π· PNPM Build
id: build-with-pnpm
run: pnpm build
- name: ποΈ Maven Build identity-apps-core
id: build-with-maven
run: |
cd identity-apps-core
mvn clean install -U -Dlint.exec.skip=true -Dbootstrap.exec.skip=true
- name: πΎ Cache local Maven repository
id: cache-maven-m2
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-