-
Notifications
You must be signed in to change notification settings - Fork 119
140 lines (140 loc) · 5.73 KB
/
check_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
138
139
140
name: Run Tests
on:
pull_request:
branches: [manta]
types: [opened, reopened, synchronize, labeled]
push:
branches: [manta]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
DEBIAN_FRONTEND: noninteractive
jobs:
start-integration-test-checks:
if: contains(github.event.pull_request.labels.*.name, 'A-integration-test-checks')
timeout-minutes: 480
runs-on: ubuntu-20.04
container:
image: ubuntu:20.04
steps:
- uses: actions/checkout@v2
- name: install sccache
env:
SCCACHE_RELEASE_URL: https://github.com/mozilla/sccache/releases/download
SCCACHE_VERSION: v0.5.3
run: |
apt update
apt install -y curl
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
mkdir -p $HOME/.local/bin
curl -L "$SCCACHE_RELEASE_URL/$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz
mv -f $SCCACHE_FILE/sccache $HOME/.local/bin/sccache
chmod +x $HOME/.local/bin/sccache
echo "$HOME/.local/bin" >> $GITHUB_PATH
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: cache sccache
uses: actions/cache@v2
continue-on-error: false
with:
path: ~/.cache/sccache
key: sccache-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
sccache-
- name: start sccache server
run: sccache --start-server
- name: init
shell: bash
run: |
apt update
apt install -y pkg-config libssl-dev protobuf-compiler curl build-essential clang git
protoc --version
curl -s https://sh.rustup.rs -sSf | sh -s -- -y
source ${HOME}/.cargo/env
rustup update
rustup toolchain install 1.74.0
rustup default 1.74.0
rustup target add wasm32-unknown-unknown
- name: cache cargo
uses: Swatinem/rust-cache@v2
- name: Run Integration Tests
shell: bash
env:
RUST_BACKTRACE: full
RUSTC_WRAPPER: sccache
# SCCACHE_CACHE_SIZE: 120G
SCCACHE_CACHE_SIZE: 2G
SCCACHE_DIR: ~/.cache/sccache
run: |
source ${HOME}/.cargo/env
RUSTC_BOOTSTRAP=1 cargo test -p integration-tests --release --features=calamari --no-default-features --timings
RUSTC_BOOTSTRAP=1 cargo test -p integration-tests --release --features=manta --no-default-features --timings
- name: stop sccache server
run: sccache --stop-server || true
start-congestion-test-checks:
if: contains(github.event.pull_request.labels.*.name, 'A-congestion-test-checks')
timeout-minutes: 480
strategy:
matrix:
runtime:
- name: manta-runtime
- name: calamari-runtime
runs-on: ubuntu-20.04
container:
image: ubuntu:20.04
steps:
- uses: actions/checkout@v2
- name: init
shell: bash
run: |
apt update
apt install -y pkg-config libssl-dev protobuf-compiler curl build-essential clang git
protoc --version
curl -s https://sh.rustup.rs -sSf | sh -s -- -y
source ${HOME}/.cargo/env
rustup update
rustup toolchain install 1.74.0
rustup default 1.74.0
rustup target add wasm32-unknown-unknown
echo "$HOME/.local/bin" >> $GITHUB_PATH
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
- name: cache cargo
uses: Swatinem/rust-cache@v2
- name: Run congestion test (allowed to fail)
id: congestion_test
shell: bash
run: |
source ${HOME}/.cargo/env
RUSTC_BOOTSTRAP=1 cargo test --package ${{ matrix.runtime.name }} --lib -- fee::multiplier_tests::multiplier_growth_simulator_and_congestion_budget_test --exact --nocapture --ignored --timings
continue-on-error: true
- name: Print res
id: congestion_test_res
run: |
echo "---------------------------------------------------------"
echo ${{ steps.congestion_test.outcome }}
echo "---------------------------------------------------------"
continue-on-error: true
- name: Comment on PR whether congestion test failed
uses: actions/github-script@v6
with:
script: |
// this uses octokit Issues API from https://octokit.github.io/rest.js/v19#issues
const octokit = github;
const number = context.issue.number;
const owner = context.repo.owner;
const repo = context.repo.repo;
if (!number) return; // Ignore non-PR CI runs
const comment_text = "Congestion test: 1-day congestion cost (${{ matrix.runtime.name }})"
// find or create a comment in the PR
const { data } = await octokit.rest.issues.listComments({ owner, repo, issue_number: number });
let existingComment = data.find((comment) => comment.body.includes(comment_text));
if (!existingComment) {
const { data: newComment } = await octokit.rest.issues.createComment({ owner, repo, issue_number: number, body: comment_text });
existingComment = newComment;
}
// Update comment text with CI status
const status = `${{ steps.congestion_test.outcome }}`;
const statusIcon = status === 'success' ? ':white_check_mark:' : ':warning:';
const above = status === 'success' ? 'is above' : 'is NOT above';
const updatedComment = `${statusIcon} ${comment_text} ${above} the target daily congestion cost`;
await octokit.rest.issues.updateComment({ owner, repo, comment_id: existingComment.id, body: updatedComment });