2023-01-25 20:14:02 +01:00
on :
2020-08-05 01:25:24 +05:30
repository_dispatch :
2021-06-12 12:47:47 +02:00
types : [ prombench_start, prombench_restart, prombench_stop]
2020-01-27 08:06:28 -08:00
name : Prombench Workflow
2020-05-07 13:47:46 +05:30
env :
2020-08-16 17:30:32 +05:30
AUTH_FILE : ${{ secrets.TEST_INFRA_PROVIDER_AUTH }}
2020-05-07 13:47:46 +05:30
CLUSTER_NAME : test-infra
DOMAIN_NAME : prombench.prometheus.io
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
GITHUB_ORG : prometheus
GITHUB_REPO : prometheus
GITHUB_STATUS_TARGET_URL : https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
LAST_COMMIT_SHA : ${{ github.event.client_payload.LAST_COMMIT_SHA }}
2020-08-16 17:30:32 +05:30
GKE_PROJECT_ID : macro-mile-203600
2020-05-07 13:47:46 +05:30
PR_NUMBER : ${{ github.event.client_payload.PR_NUMBER }}
2020-08-16 17:30:32 +05:30
PROVIDER : gke
2020-05-07 13:47:46 +05:30
RELEASE : ${{ github.event.client_payload.RELEASE }}
ZONE : europe-west3-a
2020-01-27 08:06:28 -08:00
jobs :
benchmark_start :
name : Benchmark Start
if : github.event.action == 'prombench_start'
runs-on : ubuntu-latest
steps :
2021-06-12 12:47:47 +02:00
- name : Update status to pending
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"pending", "context": "prombench-status-update-start", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"
- name : Run make deploy to start test
id : make_deploy
uses : docker://prominfra/prombench:master
with :
args : >-
until make all_nodes_deleted; do echo "waiting for nodepools to be deleted"; sleep 10; done;
make deploy;
- name : Update status to failure
if : failure()
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"failure", "context": "prombench-status-update-start", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"
- name : Update status to success
if : success()
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"success", "context": "prombench-status-update-start", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"
2020-01-27 08:06:28 -08:00
benchmark_cancel :
name : Benchmark Cancel
if : github.event.action == 'prombench_stop'
runs-on : ubuntu-latest
steps :
2021-06-12 12:47:47 +02:00
- name : Update status to pending
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"pending", "context": "prombench-status-update-cancel", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"
- name : Run make clean to stop test
id : make_clean
uses : docker://prominfra/prombench:master
with :
args : >-
until make all_nodes_running; do echo "waiting for nodepools to be created"; sleep 10; done;
make clean;
- name : Update status to failure
if : failure()
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"failure", "context": "prombench-status-update-cancel", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"
- name : Update status to success
if : success()
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"success", "context": "prombench-status-update-cancel", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"
2020-01-27 08:06:28 -08:00
benchmark_restart :
name : Benchmark Restart
if : github.event.action == 'prombench_restart'
runs-on : ubuntu-latest
steps :
2021-06-12 12:47:47 +02:00
- name : Update status to pending
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"pending", "context": "prombench-status-update-restart", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"
- name : Run make clean then make deploy to restart test
id : make_restart
uses : docker://prominfra/prombench:master
with :
args : >-
until make all_nodes_running; do echo "waiting for nodepools to be created"; sleep 10; done;
make clean;
until make all_nodes_deleted; do echo "waiting for nodepools to be deleted"; sleep 10; done;
make deploy;
- name : Update status to failure
if : failure()
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"failure", "context": "prombench-status-update-restart", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"
- name : Update status to success
if : success()
run : >-
curl -i -X POST
-H "Authorization: Bearer $GITHUB_TOKEN"
-H "Content-Type: application/json"
--data '{"state":"success", "context": "prombench-status-update-restart", "target_url": "'$GITHUB_STATUS_TARGET_URL'"}'
"https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"