![dependabot[bot]](/assets/img/avatar_default.png)
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
72 lines
2.3 KiB
YAML
72 lines
2.3 KiB
YAML
name: Performance Test
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
logLevel:
|
|
description: 'Log level'
|
|
required: true
|
|
default: 'warning'
|
|
tags:
|
|
description: 'K6 Load Test'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
k6_test_run:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
|
|
- name: Install K6
|
|
run: |
|
|
wget https://github.com/grafana/k6/releases/download/v0.38.2/k6-v0.38.2-linux-amd64.tar.gz
|
|
echo '7c9e5a26aaa2c638c042f6dfda7416161b8d2e0d4cb930721a38083b8be109ab *k6-v0.38.2-linux-amd64.tar.gz' | shasum -c
|
|
tar -xvf k6-v0.38.2-linux-amd64.tar.gz k6-v0.38.2-linux-amd64/k6
|
|
mv k6-v0.38.2-linux-amd64/k6 .
|
|
./k6
|
|
|
|
- name: Make dev-env
|
|
run: |
|
|
mkdir $HOME/.kube
|
|
make dev-env
|
|
podName=`kubectl -n ingress-nginx get po | grep -i controller | awk '{print $1}'`
|
|
if [[ -z ${podName} ]] ; then
|
|
sleep 5
|
|
fi
|
|
kubectl wait pod -n ingress-nginx --for condition=Ready $podName
|
|
kubectl get all -A
|
|
|
|
- name: Deploy workload
|
|
run: |
|
|
kubectl create deploy k6 --image kennethreitz/httpbin --port 80 && \
|
|
kubectl expose deploy k6 --port 80 && \
|
|
kubectl create ing k6 --class nginx \
|
|
--rule test.ingress-nginx-controller.ga/*=k6:80
|
|
podName=`kubectl get po | grep -i k6 | awk '{print $1}'`
|
|
if [[ -z ${podName} ]] ; then
|
|
sleep 5
|
|
fi
|
|
kubectl wait pod --for condition=Ready $podName
|
|
kubectl get all,secrets,ing
|
|
|
|
- name: Tune OS
|
|
run : |
|
|
sudo sysctl -A 2>/dev/null | egrep -i "local_port_range|tw_reuse|tcp_timestamps"
|
|
sudo sh -c "ulimit"
|
|
sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"
|
|
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
|
|
sudo sysctl -w net.ipv4.tcp_timestamps=1
|
|
sudo sh -c "ulimit "
|
|
|
|
- name: Run smoke test
|
|
run: |
|
|
vmstat -at 5 | tee vmstat_report &
|
|
#./k6 login cloud -t $K6_TOKEN
|
|
#./k6 run -o cloud ./smoketest.js
|
|
./k6 run test/k6/smoketest.js
|
|
pkill vmstat
|
|
cat vmstat_report
|