-
Notifications
You must be signed in to change notification settings - Fork 18
137 lines (111 loc) · 4.32 KB
/
run-tests.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: Run tests
on:
push:
schedule:
- cron: "17 6 * * *"
jobs:
run-unit-tests:
name: Unit tests
runs-on: ubuntu-20.04
steps:
- name: Checkout this repo
uses: actions/checkout@v3
- name: Build the middleware docker image
run: docker/mware/build
- name: Middleware tests
run: middleware/test-all
- name: Firmware tests using TCPSigner
run: firmware/test/test-all
- name: Firmware HAL's common unit tests
run: firmware/src/hal/common/test/run-all.sh
- name: Firmware HAL's x86 unit tests
run: firmware/src/hal/x86/test/run-all.sh
- name: Firmware HAL's SGX unit tests
run: firmware/src/hal/sgx/test/run-all.sh
- name: Firmware common lib unit tests
run: firmware/src/common/test/run-all.sh
- name: Firmware PowHSM's unit tests
run: firmware/src/powhsm/test/run-all.sh
- name: Firmware SGX's unit tests
run: firmware/src/sgx/test/run-all.sh
- name: Ledger UI's unit tests
run: firmware/src/ledger/ui/test/run-all.sh
- name: Ledger Signer's unit tests
run: firmware/src/ledger/signer/test/run-all.sh
run-integration-tests-tcpsigner:
name: Integration tests for TCPSigner
runs-on: ubuntu-20.04
steps:
- name: Checkout rsk-powhsm repo
uses: actions/checkout@v3
with:
path: rsk-powhsm
- name: Build required software
working-directory: rsk-powhsm
run: |
docker/mware/build
docker/packer/build
middleware/build/manager_tcp
firmware/build/build-tcpsigner
- name: Checkout hsm-integration-test repo
uses: actions/checkout@v3
with:
repository: rootstock/hsm-integration-test
ref: 5.3.0.plus
path: hsm-integration-test
ssh-key: ${{ secrets.HSM_INTEGRATION_TEST_SSH_KEY }}
- name: Copy required files
run: |
mkdir hsm-integration-test/docker/manager/manager_tcp
tar -xzf rsk-powhsm/middleware/bin/manager_tcp.tgz \
-C hsm-integration-test/docker/manager/manager_tcp
cp rsk-powhsm/firmware/src/tcpsigner/tcpsigner \
hsm-integration-test/docker/tcpsigner/
- name: Run HSM integration tests
working-directory: hsm-integration-test
run: sh smoke-test.sh
run-integration-tests-sgx:
name: Integration tests for SGX simulator
runs-on: ubuntu-20.04
steps:
- name: Checkout rsk-powhsm repo
uses: actions/checkout@v3
with:
path: rsk-powhsm
- name: Build required software
working-directory: rsk-powhsm
run: |
docker/mware/build
docker/packer/build
docker/sgx/build
middleware/build/manager_sgx
docker/sgx/do-notty /hsm2/firmware/src/sgx "make generate-private-key"
firmware/build/build-sgx-sim \
0xe108960a242ad7bd45c21aff9c7ed9c516789e9cffacdd895502727d8f460d2c \
0x6E regtest
- name: Checkout hsm-integration-test repo
uses: actions/checkout@v3
with:
repository: rootstock/hsm-integration-test
ref: 5.3.0.plus
path: hsm-integration-test
ssh-key: ${{ secrets.HSM_INTEGRATION_TEST_SSH_KEY }}
- name: Copy required files
run: |
mkdir hsm-integration-test/docker/manager/manager_sgx
tar -xzf rsk-powhsm/middleware/bin/manager_sgx.tgz \
-C hsm-integration-test/docker/manager/manager_sgx
cp rsk-powhsm/firmware/src/sgx/bin/hsmsgx \
hsm-integration-test/docker/sgx
cp rsk-powhsm/firmware/src/sgx/bin/hsmsgx_enclave.signed \
hsm-integration-test/docker/sgx
echo abcd1234 > hsm-integration-test/docker/manager/pin.txt
echo -n abcd1234 > hsm-integration-test/docker/sgx/kvstore-password.dat
echo -en "\x03" > hsm-integration-test/docker/sgx/kvstore-retries.dat
echo -en "\x03" > hsm-integration-test/docker/sgx/kvstore-retries.dat
dd if=/dev/urandom bs=1 count=32 \
of=hsm-integration-test/docker/sgx/kvstore-seed.dat
echo "SGX_SIM=yes" >> "$GITHUB_ENV"
- name: Run HSM integration tests
working-directory: hsm-integration-test
run: sh smoke-test.sh