forked from microsoft/BotFramework-WebChat
-
Notifications
You must be signed in to change notification settings - Fork 4
133 lines (105 loc) · 3.08 KB
/
pull-request-validation.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
name: Pull request validation
on:
pull_request:
branches:
- main
paths-ignore:
- .github
- .vscode
push:
branches:
- feat-github-workflow
workflow_dispatch: {}
defaults:
run:
shell: bash
env:
node-version: 20.x
skip-secure-feed: true # TODO: Turn this off.
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ env.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ env.node-version }}
cache: npm
- if: "env.skip-secure-feed != 'true'"
name: Enable secure feed
run: npx https://aka.ms/EnableSecureFeed
- run: npm clean-install
- run: npm run bootstrap
- run: npm run build --if-present
# - name: Pack docker.zip
# run: zip -r docker.zip . -x .git
- name: Pack ./__tests__
run: |
zip docker.zip -r@ <<EOF
./__tests__/
./babel-jest-config.js
./babel-passthru-transformer.js
./babel.config.json
./chrome.dockerfile
./docker-compose-wsl2.yml
./jest.config.js
./node_modules/
./packages/bundle/dist/
./packages/test/harness/
./packages/test/page-object/dist/
./serve-test.json
./testharness.dockerfile
./testharness2.dockerfile
EOF
- run: ls -l docker.zip
- name: Upload Docker artifact
uses: actions/upload-artifact@v3
with:
name: docker
path: docker.zip
retention-days: 1
# Add run unit tests
test:
needs:
- build
runs-on: ubuntu-latest
strategy:
matrix:
index: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
total: [10]
steps:
- name: Use Node.js ${{ env.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ env.node-version }}
- if: "env.skip-secure-feed != 'true'"
name: Enable secure feed
run: npx https://aka.ms/EnableSecureFeed
- name: Download Docker artifact
uses: actions/download-artifact@v3
with:
name: docker
- run: unzip docker.zip
- run: rm docker.zip
- run: docker-compose -f docker-compose-wsl2.yml build --build-arg REGISTRY=mcr.microsoft.com/mirror/docker/library
- run: docker-compose -f docker-compose-wsl2.yml up --detach --scale chrome=1
- name: Run jest
run: |
npx \
--package jest@29 \
--package @babel/plugin-transform-runtime \
--package @babel/preset-env \
--package @babel/preset-react \
--package @babel/preset-typescript \
--package babel-jest \
jest
--bail=20 \
--ci \
--coverage true \
--forceExit \
--logHeapUsage \
--runInBand \
--shard=${{ format('{0}/{1}', matrix.index, matrix.total) }}
- continue-on-error: true
run: docker-compose -f docker-compose-wsl2.yml down --rmi -all