diff --git a/.github/workflows/funcbench.yml b/.github/workflows/funcbench.yml new file mode 100644 index 000000000..ea0eac365 --- /dev/null +++ b/.github/workflows/funcbench.yml @@ -0,0 +1,57 @@ +on: repository_dispatch +name: Funcbench Workflow +jobs: + run_funcbench: + name: Running funcbench + if: github.event.action == 'funcbench_start' + runs-on: ubuntu-latest + env: + AUTH_FILE: ${{ secrets.TEST_INFRA_GKE_AUTH }} + BRANCH: ${{ github.event.client_payload.BRANCH }} + BENCH_FUNC_REGEX: ${{ github.event.client_payload.BENCH_FUNC_REGEX }} + CLUSTER_NAME: test-infra + GITHUB_TOKEN: ${{ secrets.PROMBOT_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 }} + PROJECT_ID: macro-mile-203600 + PR_NUMBER: ${{ github.event.client_payload.PR_NUMBER }} + ZONE: europe-west3-a + 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":"funcbench-status","target_url":"'$GITHUB_STATUS_TARGET_URL'"}' + "https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA" + - name: Prepare nodepool + uses: docker://prominfra/prombench:master + with: + args: make funcbench_nodepool_create + - name: Run funcbench + uses: docker://prominfra/prombench:master + with: + args: make funcbench_resource_apply + - name: Delete all resources + if: always() + uses: docker://prominfra/prombench:master + with: + args: make funcbench_resource_delete; make funcbench_nodepool_delete + - 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":"funcbench-status","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":"funcbench-status","target_url":"'$GITHUB_STATUS_TARGET_URL'"}' + "https://api.github.com/repos/$GITHUB_REPOSITORY/statuses/$LAST_COMMIT_SHA"