Skip to content

Prod Load Test hourly probe #249

Prod Load Test hourly probe

Prod Load Test hourly probe #249

name: Prod Load Test hourly probe
on:
schedule:
- cron: "15 * * * *"
workflow_dispatch:
jobs:
load_test:
strategy:
fail-fast: false
matrix:
cluster:
- label: stone-prd-rh01
repo: https://github.com/rhtap-perf-test/nodejs-devfile-sample1
member_cluster_secret: MEMBER_CLUSTER_STONE_PRD_RH01
ocp_prometheus_token_secret: OCP_PROMETHEUS_TOKEN_STONE_PRD_RH01
users_secret: USERS_STONE_PRD_RH01
should_fail: false
- label: stone-stg-rh01
repo: https://github.com/rhtap-perf-test/nodejs-devfile-sample2
member_cluster_secret: MEMBER_CLUSTER_STONE_STG_RH01
ocp_prometheus_token_secret: OCP_PROMETHEUS_TOKEN_STONE_STG_RH01
users_secret: USERS_STONE_STG_RH01
should_fail: false
- label: kflux-prd-rh02
repo: https://github.com/rhtap-perf-test/nodejs-devfile-sample3
member_cluster_secret: MEMBER_CLUSTER_KFLUX_PRD_RH02
ocp_prometheus_token_secret: OCP_PROMETHEUS_TOKEN_KFLUX_PRD_RH02
users_secret: USERS_KFLUX_PRD_RH02
should_fail: false
runs-on: ubuntu-latest
timeout-minutes: 120
# continue even if the job fails
continue-on-error: true
# Make sure this action does not get scheduled by cron on e2e-tests forks
if: ${{ github.repository_owner == 'konflux-ci' || github.event_name != 'schedule' }}
env:
ARTIFACT_DIR: ${{ github.workspace }}/tests/load-test/artifacts/
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up jq
run: |
sudo apt-get update
sudo apt-get install -y jq
- name: Prepare list of users
working-directory: ./tests/load-tests
env:
USERS: ${{ secrets[matrix.cluster.users_secret] }}
run: echo "$USERS" > users.json
- name: Run Load Test
working-directory: ./tests/load-tests
env:
SCENARIO: COMPONENT_REPO=${{ matrix.cluster.repo }} CONCURRENCY=1 COMPONENT_DOCKERFILE_PATH=Dockerfile MY_GITHUB_ORG=rhtap-perf-test
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
MY_GITHUB_ORG: "rhtap-perf-test"
run: |
export $SCENARIO
./run-stage.sh
- name: Collect results
working-directory: ./tests/load-tests
env:
MEMBER_CLUSTER: ${{ secrets[matrix.cluster.member_cluster_secret] }}
OCP_PROMETHEUS_TOKEN: ${{ secrets[matrix.cluster.ocp_prometheus_token_secret] }}
run: |
export $SCENARIO
export MEMBER_CLUSTER
export OCP_PROMETHEUS_TOKEN
./ci-scripts/stage/collect-results.sh ${CONCURRENCY:-1} ${PWD}
- name: List files in the artifact directory
run: ls -la ${{ env.ARTIFACT_DIR }}
- name: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: rhtap-load-test-${{ matrix.cluster.label }}
path: ${{ env.ARTIFACT_DIR }}
include-hidden-files: true