generated from layer5io/layer5-repo-template
-
Notifications
You must be signed in to change notification settings - Fork 22
103 lines (92 loc) · 3.49 KB
/
scheduled-benchmarks.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# This workflow runs performance benchmarks with Meshery based on the configuration provided
# This workflow is scheduled to run daily but can also be triggered manually
name: Scheduled Benchmark Tests
on:
# for triggering manually, provide a test configuration file name or a performance profile name
workflow_dispatch:
inputs:
profile_name:
description: "performance profile to use"
required: false
profile_filename:
description: "test configuration file"
required: false
# scheduled to run at everyday at 13:22
schedule:
- cron: '*/33 * * * *'
jobs:
manual-test:
name: Manual Benchmark Test
runs-on: ubuntu-latest
if: ${{ github.event_name == 'workflow_dispatch' }}
strategy:
fail-fast: false
matrix:
service-mesh: ['istio', 'linkerd']
load-generator: ['fortio', 'wrk2']
steps:
- name: Setup Kubernetes
uses: manusa/actions-setup-minikube@v2.7.1
with:
minikube version: v1.23.2
kubernetes version: v1.23.2
driver: docker
- name: Checkout Code
uses: actions/checkout@v4
- name: Install Service Mesh and Deploy Application
run: |
chmod +x .github/workflows/scripts/${{ matrix.service-mesh }}_deploy.sh
.github/workflows/scripts/${{ matrix.service-mesh }}_deploy.sh
shell: bash
- name: Get Date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d-%H.%M.%S')"
- name: Run Benchmark Tests
uses: layer5io/meshery-smp-action@master
with:
provider_token: ${{ secrets.MESHERY_TOKEN }}
platform: docker
profile_name: ${{ github.event.inputs.profile_name }}
profile_filename: ${{ github.event.inputs.profile_filename }}
endpoint_url: ${{env.ENDPOINT_URL}}
service_mesh: ${{env.SERVICE_MESH}}
load_generator: ${{ matrix.load-generator }}
test_name: '${{ steps.date.outputs.date }}'
scheduled-test:
name: Scheduled Benchmark Test
runs-on: ubuntu-latest
if: ${{ github.event_name == 'schedule' }}
strategy:
fail-fast: false
matrix:
service-mesh: ['istio', 'linkerd', 'osm']
load-generator: ['fortio', 'wrk2']
test-configuration: ['load-test.yaml','soak-test.yaml']
steps:
- name: Setup Kubernetes
uses: manusa/actions-setup-minikube@v2.7.1
with:
minikube version: 'v1.23.2'
kubernetes version: 'v1.23.2'
driver: docker
- name: Checkout Code
uses: actions/checkout@v4
- name: Install Service Mesh and Deploy Application
run: |
chmod +x .github/workflows/scripts/${{ matrix.service-mesh }}_deploy.sh
.github/workflows/scripts/${{ matrix.service-mesh }}_deploy.sh
shell: bash
- name: Get Date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d-%H.%M.%S')"
- name: Run Benchmark Tests
uses: layer5io/meshery-smp-action@master
with:
provider_token: ${{ secrets.MESHERY_TOKEN }}
platform: docker
profile_filename: ${{ matrix.test-configuration }}
endpoint_url: ${{env.ENDPOINT_URL}}
service_mesh: ${{env.SERVICE_MESH}}
load_generator: ${{ matrix.load-generator }}
profile_name: '${{ matrix.service-mesh }}-${{ matrix.load-generator }}-${{ matrix.test-configuration }}'
test_name: '${{ steps.date.outputs.date }}'