Skip to content

Fix ruby setup in ci #4955

Fix ruby setup in ci

Fix ruby setup in ci #4955

Workflow file for this run

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.71.0
rustup default 1.71.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.71.0
rustup default 1.71.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 });