Skip to content

Commit 6631f5e

Browse files
authored
[verification] Add additional nightly verification test (#483)
1 parent e5b8959 commit 6631f5e

File tree

8 files changed

+497
-122
lines changed

8 files changed

+497
-122
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Verification Performance tests
2+
3+
on:
4+
workflow_dispatch: # To start from UI
5+
schedule:
6+
- cron: "12 0 * * *" # 00:12am UTC daily
7+
8+
env:
9+
REPOSITORY_OWNER: ${{ github.repository_owner }}
10+
GHCR_REGISTRY: "ghcr.io"
11+
GHCR_REGISTRY_USERNAME: ${{ github.actor }}
12+
GHCR_REGISTRY_TOKEN: ${{ secrets.GITHUB_TOKEN }}
13+
14+
jobs:
15+
build:
16+
# prevent running on forks
17+
if: github.repository_owner == 'restatedev'
18+
runs-on: warp-ubuntu-latest-x64-16x # warpbuild runner
19+
timeout-minutes: 250
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v4
23+
24+
- name: Log into GitHub container registry
25+
uses: docker/login-action@v2
26+
with:
27+
registry: ${{ env.GHCR_REGISTRY }}
28+
username: ${{ env.GHCR_REGISTRY_USERNAME }}
29+
password: ${{ env.GHCR_REGISTRY_TOKEN }}
30+
31+
- name: Set up QEMU
32+
uses: docker/setup-qemu-action@v3
33+
- name: Set up Docker Buildx
34+
uses: docker/setup-buildx-action@v3
35+
36+
- name: Build Typescript test-services image
37+
id: build
38+
uses: docker/build-push-action@v6
39+
with:
40+
context: .
41+
file: "packages/restate-e2e-services/Dockerfile"
42+
push: false
43+
load: true
44+
tags: localhost/restatedev/test-services:latest
45+
cache-from: type=gha,scope=${{ github.workflow }}
46+
47+
- name: Run the verification test
48+
env:
49+
RESTATE_CONTAINER_IMAGE: 'ghcr.io/restatedev/restate:main'
50+
SERVICES_CONTAINER_IMAGE: 'localhost/restatedev/test-services:latest'
51+
ENV_FILE: 'perf/env.json'
52+
PARAMS_FILE: 'perf/params.json'
53+
run: ./scripts/run-verification.sh

scripts/correctness/env.json

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
{
2+
"n1": {
3+
"image": "${RESTATE_CONTAINER_IMAGE}",
4+
"ports": [8080, 9070, 5122],
5+
"pull": "always",
6+
"env": {
7+
"RESTATE_LOG_FILTER": "restate=warn",
8+
"RESTATE_LOG_FORMAT": "json",
9+
"RESTATE_ROLES": "[worker,log-server,admin,metadata-server]",
10+
"RESTATE_CLUSTER_NAME": "foobar",
11+
"RESTATE_BIFROST__DEFAULT_PROVIDER": "replicated",
12+
"RESTATE_BIFROST__REPLICATED_LOGLET__DEFAULT_LOG_REPLICATION": "2",
13+
"RESTATE_METADATA_SERVER__TYPE": "replicated",
14+
"RESTATE_AUTO_PROVISION": "true",
15+
"RESTATE_ADVERTISED_ADDRESS": "http://n1:5122",
16+
"DO_NOT_TRACK": "true"
17+
}
18+
},
19+
"n2": {
20+
"image": "${RESTATE_CONTAINER_IMAGE}",
21+
"ports": [8080],
22+
"pull": "always",
23+
"env": {
24+
"RESTATE_LOG_FILTER": "restate=warn",
25+
"RESTATE_LOG_FORMAT": "json",
26+
"RESTATE_ROLES": "[worker,admin,log-server,metadata-server]",
27+
"RESTATE_CLUSTER_NAME": "foobar",
28+
"RESTATE_BIFROST__DEFAULT_PROVIDER": "replicated",
29+
"RESTATE_BIFROST__REPLICATED_LOGLET__DEFAULT_LOG_REPLICATION": "2",
30+
"RESTATE_METADATA_SERVER__TYPE": "replicated",
31+
"RESTATE_AUTO_PROVISION": "false",
32+
"RESTATE_METADATA_CLIENT__ADDRESSES": "[http://n1:5122]",
33+
"RESTATE_ADVERTISED_ADDRESS": "http://n2:5122",
34+
"DO_NOT_TRACK": "true"
35+
}
36+
},
37+
"n3": {
38+
"image": "${RESTATE_CONTAINER_IMAGE}",
39+
"ports": [8080],
40+
"pull": "always",
41+
"env": {
42+
"RESTATE_LOG_FILTER": "restate=warn",
43+
"RESTATE_LOG_FORMAT": "json",
44+
"RESTATE_ROLES": "[worker,admin,log-server,metadata-server]",
45+
"RESTATE_CLUSTER_NAME": "foobar",
46+
"RESTATE_BIFROST__DEFAULT_PROVIDER": "replicated",
47+
"RESTATE_BIFROST__REPLICATED_LOGLET__DEFAULT_LOG_REPLICATION": "2",
48+
"RESTATE_METADATA_SERVER__TYPE": "replicated",
49+
"RESTATE_AUTO_PROVISION": "false",
50+
"RESTATE_METADATA_CLIENT__ADDRESSES": "[http://n1:5122]",
51+
"RESTATE_ADVERTISED_ADDRESS": "http://n3:5122",
52+
"DO_NOT_TRACK": "true"
53+
}
54+
},
55+
"interpreter_zero": {
56+
"image": "${SERVICES_CONTAINER_IMAGE}",
57+
"ports": [9000],
58+
"pull": "never",
59+
"env": {
60+
"PORT": "9000",
61+
"RESTATE_LOGGING": "ERROR",
62+
"NODE_ENV": "production",
63+
"UV_THREADPOOL_SIZE" : "8",
64+
"NODE_OPTS" : "--max-old-space-size=4096",
65+
"SERVICES": "ObjectInterpreterL0"
66+
}
67+
},
68+
"interpreter_one": {
69+
"image": "${SERVICES_CONTAINER_IMAGE}",
70+
"ports": [9001],
71+
"pull": "never",
72+
"env": {
73+
"PORT": "9001",
74+
"RESTATE_LOGGING": "ERROR",
75+
"NODE_ENV": "production",
76+
"UV_THREADPOOL_SIZE" : "8",
77+
"NODE_OPTS" : "--max-old-space-size=4096",
78+
"SERVICES": "ObjectInterpreterL1"
79+
}
80+
},
81+
"interpreter_two": {
82+
"image": "${SERVICES_CONTAINER_IMAGE}",
83+
"ports": [9002],
84+
"pull": "never",
85+
"env": {
86+
"PORT": "9002",
87+
"RESTATE_LOGGING": "ERROR",
88+
"NODE_ENV": "production",
89+
"UV_THREADPOOL_SIZE" : "8",
90+
"NODE_OPTS" : "--max-old-space-size=4096",
91+
"SERVICES": "ObjectInterpreterL2"
92+
}
93+
},
94+
"services": {
95+
"image": "${SERVICES_CONTAINER_IMAGE}",
96+
"ports": [9003],
97+
"pull": "never",
98+
"env": {
99+
"PORT": "9003",
100+
"RESTATE_LOGGING": "ERROR",
101+
"NODE_ENV": "production",
102+
"UV_THREADPOOL_SIZE" : "8",
103+
"NODE_OPTS" : "--max-old-space-size=4096",
104+
"SERVICES": "ServiceInterpreterHelper"
105+
}
106+
}
107+
}

scripts/correctness/params.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"seed" : "${SEED}",
3+
"keys" : 1000000,
4+
"tests" : 100000,
5+
"maxProgramSize" : 20,
6+
"crashInterval" : 900000,
7+
"bootstrap" : true
8+
}

scripts/perf/env.json

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
{
2+
"n1": {
3+
"image": "${RESTATE_CONTAINER_IMAGE}",
4+
"ports": [8080, 9070, 5122],
5+
"pull": "always",
6+
"env": {
7+
"RESTATE_LOG_FILTER": "restate=warn",
8+
"RESTATE_LOG_FORMAT": "json",
9+
"RESTATE_ROLES": "[worker,log-server,admin,metadata-server]",
10+
"RESTATE_CLUSTER_NAME": "foobar",
11+
"RESTATE_BIFROST__DEFAULT_PROVIDER": "replicated",
12+
"RESTATE_BIFROST__REPLICATED_LOGLET__DEFAULT_LOG_REPLICATION": "2",
13+
"RESTATE_METADATA_SERVER__TYPE": "replicated",
14+
"RESTATE_AUTO_PROVISION": "true",
15+
"RESTATE_ADVERTISED_ADDRESS": "http://n1:5122",
16+
"DO_NOT_TRACK": "true"
17+
}
18+
},
19+
"n2": {
20+
"image": "${RESTATE_CONTAINER_IMAGE}",
21+
"ports": [8080],
22+
"pull": "always",
23+
"env": {
24+
"RESTATE_LOG_FILTER": "restate=warn",
25+
"RESTATE_LOG_FORMAT": "json",
26+
"RESTATE_ROLES": "[worker,admin,log-server,metadata-server]",
27+
"RESTATE_CLUSTER_NAME": "foobar",
28+
"RESTATE_BIFROST__DEFAULT_PROVIDER": "replicated",
29+
"RESTATE_BIFROST__REPLICATED_LOGLET__DEFAULT_LOG_REPLICATION": "2",
30+
"RESTATE_METADATA_SERVER__TYPE": "replicated",
31+
"RESTATE_AUTO_PROVISION": "false",
32+
"RESTATE_METADATA_CLIENT__ADDRESSES": "[http://n1:5122]",
33+
"RESTATE_ADVERTISED_ADDRESS": "http://n2:5122",
34+
"DO_NOT_TRACK": "true"
35+
}
36+
},
37+
"n3": {
38+
"image": "${RESTATE_CONTAINER_IMAGE}",
39+
"ports": [8080],
40+
"pull": "always",
41+
"env": {
42+
"RESTATE_LOG_FILTER": "restate=warn",
43+
"RESTATE_LOG_FORMAT": "json",
44+
"RESTATE_ROLES": "[worker,admin,log-server,metadata-server]",
45+
"RESTATE_CLUSTER_NAME": "foobar",
46+
"RESTATE_BIFROST__DEFAULT_PROVIDER": "replicated",
47+
"RESTATE_BIFROST__REPLICATED_LOGLET__DEFAULT_LOG_REPLICATION": "2",
48+
"RESTATE_METADATA_SERVER__TYPE": "replicated",
49+
"RESTATE_AUTO_PROVISION": "false",
50+
"RESTATE_METADATA_CLIENT__ADDRESSES": "[http://n1:5122]",
51+
"RESTATE_ADVERTISED_ADDRESS": "http://n3:5122",
52+
"DO_NOT_TRACK": "true"
53+
}
54+
},
55+
"interpreter_zero": {
56+
"image": "${SERVICES_CONTAINER_IMAGE}",
57+
"ports": [9000],
58+
"pull": "never",
59+
"env": {
60+
"PORT": "9000",
61+
"RESTATE_LOGGING": "ERROR",
62+
"NODE_ENV": "production",
63+
"UV_THREADPOOL_SIZE" : "8",
64+
"NODE_OPTS" : "--max-old-space-size=4096",
65+
"SERVICES": "ObjectInterpreterL0"
66+
}
67+
},
68+
"interpreter_one": {
69+
"image": "${SERVICES_CONTAINER_IMAGE}",
70+
"ports": [9001],
71+
"pull": "never",
72+
"env": {
73+
"PORT": "9001",
74+
"RESTATE_LOGGING": "ERROR",
75+
"NODE_ENV": "production",
76+
"UV_THREADPOOL_SIZE" : "8",
77+
"NODE_OPTS" : "--max-old-space-size=4096",
78+
"SERVICES": "ObjectInterpreterL1"
79+
}
80+
},
81+
"interpreter_two": {
82+
"image": "${SERVICES_CONTAINER_IMAGE}",
83+
"ports": [9002],
84+
"pull": "never",
85+
"env": {
86+
"PORT": "9002",
87+
"RESTATE_LOGGING": "ERROR",
88+
"NODE_ENV": "production",
89+
"UV_THREADPOOL_SIZE" : "8",
90+
"NODE_OPTS" : "--max-old-space-size=4096",
91+
"SERVICES": "ObjectInterpreterL2"
92+
}
93+
},
94+
"services": {
95+
"image": "${SERVICES_CONTAINER_IMAGE}",
96+
"ports": [9003],
97+
"pull": "never",
98+
"env": {
99+
"PORT": "9003",
100+
"RESTATE_LOGGING": "ERROR",
101+
"NODE_ENV": "production",
102+
"UV_THREADPOOL_SIZE" : "8",
103+
"NODE_OPTS" : "--max-old-space-size=4096",
104+
"SERVICES": "ServiceInterpreterHelper"
105+
}
106+
}
107+
}

scripts/perf/params.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"seed" : "${SEED}",
3+
"keys" : 1000000,
4+
"tests" : 100000,
5+
"maxProgramSize" : 20,
6+
"bootstrap" : true
7+
}

0 commit comments

Comments
 (0)