mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-25 13:44:05 -08:00
Added GitHub actions workflow for prombench. (#6173)
Signed-off-by: Hrishikesh Barman <hrishikeshbman@gmail.com>
This commit is contained in:
parent
a19aea4ec2
commit
96273cc292
205
.github/workflows/prombench.yml
vendored
Normal file
205
.github/workflows/prombench.yml
vendored
Normal file
|
@ -0,0 +1,205 @@
|
|||
on: issue_comment
|
||||
name: Prombench Workflow
|
||||
jobs:
|
||||
# We need a `pre_benchmark_*` job because if conditionals are not yet supported for steps, see:
|
||||
# https://github.community/t5/GitHub-Actions/Github-Actions-Contexts-and-steps-if-conditionals-are-unusable/m-p/29669/highlight/true#M8294
|
||||
#############################
|
||||
# Jobs for starting benchmark
|
||||
#############################
|
||||
pre_benchmark_start:
|
||||
name: Pre Benchmark Start
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Validate comment
|
||||
id: validate_comment
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
env:
|
||||
COMMENT_TEMPLATE: |
|
||||
⏱️ Welcome to Prometheus Benchmarking Tool. ⏱️
|
||||
|
||||
**Compared versions:** [**`PR-{{ index . "PR_NUMBER" }}`**](http://{{ index . "DOMAIN_NAME" }}/{{ index . "PR_NUMBER" }}/prometheus-pr) and [**`{{ index . "RELEASE" }}`**](http://{{ index . "DOMAIN_NAME" }}/{{ index . "PR_NUMBER" }}/prometheus-release)
|
||||
|
||||
**GitHub Actions logs:** [{{ index . "GITHUB_SHA" }}/checks](https://github.com/{{ index . "GITHUB_REPOSITORY" }}/commit/{{ index . "GITHUB_SHA" }}/checks)
|
||||
|
||||
After successful deployment, the benchmarking metrics can be viewed at:
|
||||
|
||||
- [Prometheus Meta](http://{{ index . "DOMAIN_NAME" }}/prometheus-meta/graph?g0.expr={namespace%3D"prombench-{{ index . "PR_NUMBER" }}"}&g0.tab=1)
|
||||
- [Grafana Home](http://{{ index . "DOMAIN_NAME" }}/grafana)
|
||||
- [Grafana Exlorer, Loki logs](http://{{ index . "DOMAIN_NAME" }}/grafana/explore)
|
||||
|
||||
**Other Commands:**
|
||||
To stop benchmark: `/prombench cancel`
|
||||
To restart benchmark: `/prombench restart v2.12.0`
|
||||
LABEL_NAME: prombench
|
||||
DOMAIN_NAME: prombench.prometheus.io
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
args: >-
|
||||
"(?mi)^/prombench\s*(?P<RELEASE>master|v[0-9]+\.[0-9]+\.[0-9]+\S*)\s*$"
|
||||
benchmark_start:
|
||||
name: Benchmark Start
|
||||
needs: pre_benchmark_start
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Extract arguments
|
||||
id: extract_arguments
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
with:
|
||||
args: >-
|
||||
"(?mi)^/prombench\s*(?P<RELEASE>master|v[0-9]+\.[0-9]+\.[0-9]+\S*)\s*$"
|
||||
- name: Run make deploy to start test
|
||||
id: make_deploy
|
||||
uses: docker://prombench/prombench:2.0.2
|
||||
env:
|
||||
AUTH_FILE: ${{ secrets.AUTH_FILE }}
|
||||
PROJECT_ID: macro-mile-203600
|
||||
CLUSTER_NAME: prombench
|
||||
ZONE: us-central1-a
|
||||
DOMAIN_NAME: prombench.prometheus.io
|
||||
TEST_INFRA_REPO: https://github.com/prometheus/prombench.git
|
||||
GITHUB_ORG: prometheus
|
||||
GITHUB_REPO: prometheus
|
||||
with:
|
||||
args: >-
|
||||
export RELEASE=$(cat /github/home/commentMonitor/RELEASE);
|
||||
export PR_NUMBER=$(cat /github/home/commentMonitor/PR_NUMBER);
|
||||
until make all_nodepools_deleted; do echo "waiting for nodepools to be deleted"; sleep 10; done;
|
||||
make deploy;
|
||||
- name: Post comment if make deploy failed
|
||||
id: fail_notification
|
||||
if: failure()
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
env:
|
||||
COMMENT_TEMPLATE: |
|
||||
Prombench test **start** failed. Please see logs for more info.
|
||||
|
||||
**GitHub Actions logs:** [{{ index . "GITHUB_SHA" }}/checks](https://github.com/{{ index . "GITHUB_REPOSITORY" }}/commit/{{ index . "GITHUB_SHA" }}/checks)
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
#############################
|
||||
# Jobs for stopping benchmark
|
||||
#############################
|
||||
pre_benchmark_cancel:
|
||||
name: Pre Benchmark Cancel
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Validate comment
|
||||
id: validate_comment
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
env:
|
||||
COMMENT_TEMPLATE: |
|
||||
Benchmark cancel is in progress.
|
||||
|
||||
**GitHub Actions logs:** [{{ index . "GITHUB_SHA" }}/checks](https://github.com/{{ index . "GITHUB_REPOSITORY" }}/commit/{{ index . "GITHUB_SHA" }}/checks)
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
args: >-
|
||||
"(?mi)^/prombench\s+cancel\s*$"
|
||||
benchmark_cancel:
|
||||
name: Benchmark Cancel
|
||||
needs: pre_benchmark_cancel
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Extract arguments
|
||||
id: extract_arguments
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
with:
|
||||
args: >-
|
||||
"(?mi)^/prombench\s+cancel\s*$"
|
||||
- name: Run make clean to stop test
|
||||
id: make_clean
|
||||
uses: docker://prombench/prombench:2.0.2
|
||||
env:
|
||||
AUTH_FILE: ${{ secrets.AUTH_FILE }}
|
||||
PROJECT_ID: macro-mile-203600
|
||||
CLUSTER_NAME: prombench
|
||||
ZONE: us-central1-a
|
||||
TEST_INFRA_REPO: https://github.com/prometheus/prombench.git
|
||||
with:
|
||||
args: >-
|
||||
export PR_NUMBER=$(cat /github/home/commentMonitor/PR_NUMBER);
|
||||
until make all_nodepools_running; do echo "waiting for nodepools to be created"; sleep 10; done;
|
||||
make clean;
|
||||
- name: Post comment if make clean failed
|
||||
id: fail_notification
|
||||
if: failure()
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
env:
|
||||
COMMENT_TEMPLATE: |
|
||||
Prombench test **cancel** failed. Please see logs for more info."
|
||||
|
||||
**GitHub Actions logs:** [{{ index . "GITHUB_SHA" }}/checks](https://github.com/{{ index . "GITHUB_REPOSITORY" }}/commit/{{ index . "GITHUB_SHA" }}/checks)
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
###############################
|
||||
# Jobs for restarting benchmark
|
||||
###############################
|
||||
pre_benchmark_restart:
|
||||
name: Pre Benchmark Restart
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Validate comment
|
||||
id: validate_comment
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
env:
|
||||
COMMENT_TEMPLATE: |
|
||||
⏱️ Welcome to Prometheus Benchmarking Tool. ⏱️
|
||||
|
||||
**Compared versions:** [**`PR-{{ index . "PR_NUMBER" }}`**](http://{{ index . "DOMAIN_NAME" }}/{{ index . "PR_NUMBER" }}/prometheus-pr) and [**`{{ index . "RELEASE" }}`**](http://{{ index . "DOMAIN_NAME" }}/{{ index . "PR_NUMBER" }}/prometheus-release)
|
||||
|
||||
**GitHub Actions logs:** [{{ index . "GITHUB_SHA" }}/checks](https://github.com/{{ index . "GITHUB_REPOSITORY" }}/commit/{{ index . "GITHUB_SHA" }}/checks)'
|
||||
|
||||
After successful deployment, the benchmarking metrics can be viewed at:
|
||||
|
||||
- [Prometheus Meta](http://{{ index . "DOMAIN_NAME" }}/prometheus-meta/graph?g0.expr={namespace%3D"prombench-{{ index . "PR_NUMBER" }}"}&g0.tab=1)
|
||||
- [Grafana Home](http://{{ index . "DOMAIN_NAME" }}/grafana)
|
||||
- [Grafana Exlorer, Loki logs](http://{{ index . "DOMAIN_NAME" }}/grafana/explore)
|
||||
|
||||
**Other Commands:**
|
||||
To stop benchmark: `/prombench cancel`
|
||||
To restart benchmark: `/prombench restart v2.12.0`
|
||||
LABEL_NAME: prombench
|
||||
DOMAIN_NAME: prombench.prometheus.io
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
args: >-
|
||||
"(?mi)^/prombench\s+restart\s+(?P<RELEASE>master|v[0-9]+\.[0-9]+\.[0-9]+\S*)\s*$"
|
||||
benchmark_restart:
|
||||
name: Benchmark Restart
|
||||
needs: pre_benchmark_restart
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Extract arguments
|
||||
id: extract_arguments
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
with:
|
||||
args: >-
|
||||
"(?mi)^/prombench\s+restart\s+(?P<RELEASE>master|v[0-9]+\.[0-9]+\.[0-9]+\S*)\s*$"
|
||||
- name: Run make clean then make deploy to restart test
|
||||
id: make_restart
|
||||
uses: docker://prombench/prombench:2.0.2
|
||||
env:
|
||||
AUTH_FILE: ${{ secrets.AUTH_FILE }}
|
||||
PROJECT_ID: macro-mile-203600
|
||||
CLUSTER_NAME: prombench
|
||||
ZONE: us-central1-a
|
||||
DOMAIN_NAME: prombench.prometheus.io
|
||||
TEST_INFRA_REPO: https://github.com/prometheus/prombench.git
|
||||
GITHUB_ORG: prometheus
|
||||
GITHUB_REPO: prometheus
|
||||
with:
|
||||
args: >-
|
||||
export RELEASE=$(cat /github/home/commentMonitor/RELEASE);
|
||||
export PR_NUMBER=$(cat /github/home/commentMonitor/PR_NUMBER);
|
||||
until make all_nodepools_running; do echo "waiting for nodepools to be created"; sleep 10; done;
|
||||
make clean;
|
||||
until make all_nodepools_deleted; do echo "waiting for nodepools to be deleted"; sleep 10; done;
|
||||
make deploy;
|
||||
- name: Post comment if make deploy failed
|
||||
id: fail_notification
|
||||
if: failure()
|
||||
uses: docker://prombench/comment-monitor:0.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
COMMENT_TEMPLATE: |
|
||||
Prombench test **restart** failed. Please see logs for more info."
|
||||
|
||||
**GitHub Actions logs:** [{{ index . "GITHUB_SHA" }}/checks](https://github.com/{{ index . "GITHUB_REPOSITORY" }}/commit/{{ index . "GITHUB_SHA" }}/checks)
|
Loading…
Reference in a new issue