perf-CI #184
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: perf-CI | |
on: | |
schedule: | |
# Runs "At 13:00 UTC every day-of-week" | |
- cron: '0 14 * * *' | |
workflow_dispatch: | |
inputs: | |
testName: | |
description: 'Test Run-Name' | |
required: true | |
default: 'perf-single-node' | |
threads: | |
description: 'No. of threads for iperf & netperf' | |
required: true | |
default: '50' | |
duration: | |
description: 'Test Run duration' | |
required: true | |
default: '10' | |
jobs: | |
build: | |
name: perf-single-node | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
- uses: actions/setup-python@v2 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: '>=1.18.0' | |
- run: sudo apt-get update | |
- run: if [[ ${{ matrix.os }} == 'ubuntu-22.04' ]]; then sudo apt-get -y install clang-13 lksctp-tools; else sudo apt-get -y install clang-10; fi | |
- run: sudo apt-get -y install llvm libelf-dev gcc-multilib libpcap-dev linux-tools-$(uname -r) elfutils dwarves git libbsd-dev bridge-utils unzip build-essential bison flex iperf iproute2 nodejs socat iperf3 | |
- run: | | |
git clone https://github.com/loxilb-io/iproute2 iproute2-main | |
cd iproute2-main/libbpf/src/ | |
sudo make install | |
mkdir build | |
DESTDIR=build make install | |
cd - | |
cd iproute2-main/ | |
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:`pwd`/libbpf/src/ && LIBBPF_FORCE=on LIBBPF_DIR=`pwd`/libbpf/src/build ./configure && make && sudo cp -f tc/tc /usr/local/sbin/ntc && cd - | |
- run: loxilb-ebpf/utils/mkllb_bpffs.sh | |
- run: sudo -E env "PATH=$PATH" make | |
- run: docker pull ghcr.io/loxilb-io/loxilb:latest | |
- run: docker run -u root --cap-add SYS_ADMIN --restart unless-stopped --privileged -dit -v /dev/log:/dev/log --name loxilb ghcr.io/loxilb-io/loxilb:latest | |
- run: pwd && ls && sudo -E env "PATH=$PATH" make docker-cp | |
- run: id=`docker ps -f name=loxilb | cut -d " " -f 1 | grep -iv "CONTAINER"` && docker commit $id ghcr.io/loxilb-io/loxilb:latest | |
- run: docker stop loxilb && docker rm loxilb | |
- run: | | |
cd cicd/tcpsctpperf | |
./config.sh | |
./validation.sh ${{ github.event.inputs.threads }} ${{ github.event.inputs.duration }} | |
./rmconfig.sh | |
cd - |