on: repository_dispatch: types: [prombench_start,prombench_restart,prombench_stop] name: Prombench Workflow env: AUTH_FILE: ${{ secrets.TEST_INFRA_PROVIDER_AUTH }} 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 }} GKE_PROJECT_ID: macro-mile-203600 PR_NUMBER: ${{ github.event.client_payload.PR_NUMBER }} PROVIDER: gke RELEASE: ${{ github.event.client_payload.RELEASE }} ZONE: europe-west3-a jobs: benchmark_start: name: Benchmark Start if: github.event.action == 'prombench_start' runs-on: ubuntu-latest steps: - 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" benchmark_cancel: name: Benchmark Cancel if: github.event.action == 'prombench_stop' runs-on: ubuntu-latest steps: - 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" benchmark_restart: name: Benchmark Restart if: github.event.action == 'prombench_restart' runs-on: ubuntu-latest steps: - 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"