-
Notifications
You must be signed in to change notification settings - Fork 14
172 lines (154 loc) · 6.58 KB
/
ci-test.yaml
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# NOTE: This name appears in GitHub's Checks API and in workflow's status badge.
name: ci-test
# Trigger the workflow when:
on:
# A push occurs to one of the matched branches.
push:
branches:
- main
- stable/*
# Or when a pull request event occurs for a pull request against one of the
# matched branches.
pull_request:
branches:
- main
- stable/*
# Cancel in-progress jobs on same branch.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test-go:
runs-on: ubuntu-latest
services:
postgres:
image: postgres
env:
POSTGRES_HOST: 127.0.0.1
POSTGRES_PORT: 5432
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
env:
OASIS_CORE_VERSION: "24.2"
OASIS_NODE_BINARY: ${{ github.workspace }}/oasis_core/oasis-node
OASIS_NET_RUNNER_BINARY: ${{ github.workspace }}/oasis_core/oasis-net-runner
EMERALD_PARATIME_VERSION: 11.0.0-testnet
GATEWAY__CHAIN_ID: 42260
EMERALD_PARATIME: ${{ github.workspace }}/oasis_core/emerald-paratime
OASIS_NODE_DATADIR: /tmp/eth-runtime-test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22.x"
- name: Install prerequisites
run: |
sudo apt update && sudo apt install bubblewrap unzip -y
wget "https://github.com/oasisprotocol/oasis-core/releases/download/v${OASIS_CORE_VERSION}/oasis_core_${OASIS_CORE_VERSION}_linux_amd64.tar.gz"
tar xfvz "oasis_core_${OASIS_CORE_VERSION}_linux_amd64.tar.gz"
mkdir -p "$(dirname ${OASIS_NODE_BINARY})"
mv "oasis_core_${OASIS_CORE_VERSION}_linux_amd64/oasis-node" "${OASIS_NODE_BINARY}"
mkdir -p "$(dirname ${OASIS_NET_RUNNER_BINARY})"
mv "oasis_core_${OASIS_CORE_VERSION}_linux_amd64/oasis-net-runner" "${OASIS_NET_RUNNER_BINARY}"
mkdir -p "$(dirname ${EMERALD_PARATIME})"
wget "https://github.com/oasisprotocol/emerald-paratime/releases/download/v${EMERALD_PARATIME_VERSION}/localnet-emerald-paratime.orc" -O "${EMERALD_PARATIME}.orc"
unzip "${EMERALD_PARATIME}.orc"
mv runtime.elf "${EMERALD_PARATIME}"
chmod a+x "${EMERALD_PARATIME}"
- name: Spinup oasis-node
run:
PARATIME_BINARY="${EMERALD_PARATIME}" PARATIME_VERSION="${EMERALD_PARATIME_VERSION}" tests/tools/spinup-oasis-stack.sh > /dev/null &
sleep 60
- name: Unit tests with coverage
run:
go test -race -coverpkg=./... -coverprofile=coverage.txt
-covermode=atomic -v ./...
- name: Shutdown oasis-node
run: killall oasis-node
if: always()
- name: Upload oasis-node logs artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: oasis-node-logs
path: |
${{ env.OASIS_NODE_DATADIR }}/**/*.log
${{ env.OASIS_NODE_DATADIR }}/fixture.json
- name: Upload to codecov.io
uses: codecov/[email protected]
test-go-c10l:
runs-on: ubuntu-latest
services:
postgres:
image: postgres
env:
POSTGRES_HOST: 127.0.0.1
POSTGRES_PORT: 5432
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
env:
OASIS_CORE_VERSION: "24.2"
OASIS_NODE_BINARY: ${{ github.workspace }}/oasis_core/oasis-node
OASIS_NET_RUNNER_BINARY: ${{ github.workspace }}/oasis_core/oasis-net-runner
SAPPHIRE_PARATIME_VERSION: 0.8.2-testnet
GATEWAY__CHAIN_ID: 23293
GATEWAY__OASIS_RPCS: true
SAPPHIRE_PARATIME: ${{ github.workspace }}/oasis_core/sapphire-paratime
KEYMANAGER_ARTIFACT_URL: https://buildkite.com/organizations/oasisprotocol/pipelines/oasis-core-ci/builds/14038/jobs/0191c151-b95b-402c-9854-4e58effc95ab/artifacts/0191c156-f366-45b2-819b-e1eb9fd9ba16 # Find this at https://buildkite.com/oasisprotocol/oasis-core-ci/builds?branch=stable%2F<...> under "Build runtimes": simple-keymanager.mocksgx.
KEYMANAGER_BINARY: ${{ github.workspace }}/oasis_core/simple-keymanager
OASIS_NODE_DATADIR: /tmp/eth-runtime-test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.22.x"
- name: Install prerequisites
run: |
sudo apt update && sudo apt install bubblewrap unzip -y
# oasis-core
wget "https://github.com/oasisprotocol/oasis-core/releases/download/v${OASIS_CORE_VERSION}/oasis_core_${OASIS_CORE_VERSION}_linux_amd64.tar.gz"
tar xfvz "oasis_core_${OASIS_CORE_VERSION}_linux_amd64.tar.gz"
mkdir -p "$(dirname ${OASIS_NODE_BINARY})"
mv "oasis_core_${OASIS_CORE_VERSION}_linux_amd64/oasis-node" "${OASIS_NODE_BINARY}"
mkdir -p "$(dirname ${OASIS_NET_RUNNER_BINARY})"
mv "oasis_core_${OASIS_CORE_VERSION}_linux_amd64/oasis-net-runner" "${OASIS_NET_RUNNER_BINARY}"
mkdir -p "$(dirname ${SAPPHIRE_PARATIME})"
# sapphire-paratime
wget "https://github.com/oasisprotocol/sapphire-paratime/releases/download/v${SAPPHIRE_PARATIME_VERSION}/localnet-sapphire-paratime.orc" -O "${SAPPHIRE_PARATIME}.orc"
unzip "${SAPPHIRE_PARATIME}.orc"
mv ronl.elf "${SAPPHIRE_PARATIME}"
chmod a+x "${SAPPHIRE_PARATIME}"
# simple-keymanager
wget "${KEYMANAGER_ARTIFACT_URL}" -O "${KEYMANAGER_BINARY}"
- name: Spinup oasis-node
run:
PARATIME_BINARY="${SAPPHIRE_PARATIME}" PARATIME_VERSION="${SAPPHIRE_PARATIME_VERSION}" OASIS_UNSAFE_SKIP_AVR_VERIFY=1 OASIS_UNSAFE_ALLOW_DEBUG_ENCLAVES=1 OASIS_UNSAFE_MOCK_SGX=1 tests/tools/spinup-oasis-stack.sh > /dev/null &
sleep 60
- name: Unit tests with coverage
run:
go test -race -coverpkg=./... -coverprofile=coverage.txt
-covermode=atomic -v ./...
- name: Shutdown oasis-node
run: killall oasis-node
if: always()
- name: Upload oasis-node logs artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: oasis-node-logs-c10l
path: |
${{ env.OASIS_NODE_DATADIR }}/**/*.log
${{ env.OASIS_NODE_DATADIR }}/**/config.yaml
${{ env.OASIS_NODE_DATADIR }}/fixture.json
- name: Upload to codecov.io
uses: codecov/[email protected]