[ci] Enable benchmark ci on schedule on branch 1.0.0-preview
This commit is contained in:
		
							parent
							
								
									f8825e453e
								
							
						
					
					
						commit
						40330b116e
					
				
							
								
								
									
										167
									
								
								.github/workflows/benchmarks.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										167
									
								
								.github/workflows/benchmarks.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,167 @@ | ||||
| name: Benchmarks Test | ||||
| # Currently this workflow is only used for running benchmarks test on schedule on branch 1.0.0-preview | ||||
| 
 | ||||
| on: | ||||
|   schedule: | ||||
|     # Schedule to run on Wed,Sat at 10PM UTC (6AM CST) | ||||
|     - cron:  '0 22 * * 3,6' | ||||
| 
 | ||||
| jobs: | ||||
|   Sysbench_Test: | ||||
|     timeout-minutes: 40 | ||||
|     runs-on: ${{ matrix.self_runner }} | ||||
|     strategy: | ||||
|       matrix: | ||||
|         self_runner: [[self-hosted, SGX2-HW, benchmark]] | ||||
| 
 | ||||
|     steps: | ||||
|     - name: Clean before running | ||||
|       run: | | ||||
|         sudo chown -R ${{ secrets.CI_ADMIN }} "${{ github.workspace }}" | ||||
| 
 | ||||
|     - uses: AutoModality/action-clean@v1 | ||||
| 
 | ||||
|     - name: Checkout code | ||||
|       uses: actions/checkout@v2 | ||||
|       with: | ||||
|         submodules: true | ||||
|         ref: 1.0.0-preview | ||||
| 
 | ||||
|     - uses: ./.github/workflows/composite_action/hw | ||||
|       with: | ||||
|         container-name: ${{ github.job }} | ||||
|         build-envs: 'OCCLUM_RELEASE_BUILD=1' | ||||
| 
 | ||||
|     - name: Run sysbench download and build | ||||
|       run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/benchmarks/sysbench && ./sysbench.sh 120" | ||||
| 
 | ||||
|     - name: Copy result | ||||
|       run: docker cp ${{ env.CONTAINER_NAME }}:/root/occlum/demos/benchmarks/sysbench/result.json . | ||||
| 
 | ||||
|     # Run `github-action-benchmark` action | ||||
|     - name: Store benchmark result | ||||
|       uses: benchmark-action/github-action-benchmark@v1 | ||||
|       with: | ||||
|         name: Sysbench Benchmark | ||||
|         # What benchmark tool the output.txt came from | ||||
|         tool: 'customSmallerIsBetter' | ||||
|         # Where the output from the benchmark tool is stored | ||||
|         output-file-path: result.json | ||||
|         # Path to directory which contains benchmark files on GitHub pages branch | ||||
|         benchmark-data-dir-path: 'dev/benchmarks' | ||||
|         github-token: ${{ secrets.GITHUB_TOKEN }} | ||||
|         auto-push: true | ||||
|         # Show alert with commit comment on detecting possible performance regression | ||||
|         alert-threshold: '200%' | ||||
|         comment-on-alert: true | ||||
|         # Workflow will fail when an alert happens | ||||
|         fail-on-alert: true | ||||
|     - name: Clean the environment | ||||
|       if: ${{ always() }} | ||||
|       run: docker stop ${{ env.CONTAINER_NAME }} | ||||
| 
 | ||||
|   Iperf3_Test: | ||||
|     timeout-minutes: 40 | ||||
|     runs-on: ${{ matrix.self_runner }} | ||||
|     strategy: | ||||
|       matrix: | ||||
|         self_runner: [[self-hosted, SGX2-HW, benchmark]] | ||||
| 
 | ||||
|     steps: | ||||
|     - name: Clean before running | ||||
|       run: | | ||||
|         sudo chown -R ${{ secrets.CI_ADMIN }} "${{ github.workspace }}" | ||||
| 
 | ||||
|     - uses: AutoModality/action-clean@v1 | ||||
| 
 | ||||
|     - name: Checkout code | ||||
|       uses: actions/checkout@v2 | ||||
|       with: | ||||
|         submodules: true | ||||
|         ref: 1.0.0-preview | ||||
| 
 | ||||
|     - uses: ./.github/workflows/composite_action/hw | ||||
|       with: | ||||
|         container-name: ${{ github.job }} | ||||
|         build-envs: 'OCCLUM_RELEASE_BUILD=1' | ||||
| 
 | ||||
|     - name: Run iperf3 download and build | ||||
|       run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/benchmarks/iperf3 && ./iperf3.sh 120" | ||||
| 
 | ||||
|     - name: Copy result | ||||
|       run: docker cp ${{ env.CONTAINER_NAME }}:/root/occlum/demos/benchmarks/iperf3/result.json . | ||||
| 
 | ||||
|     # Run `github-action-benchmark` action | ||||
|     - name: Store benchmark result | ||||
|       uses: benchmark-action/github-action-benchmark@v1 | ||||
|       with: | ||||
|         name: Iperf3 Benchmark | ||||
|         # What benchmark tool the output.txt came from | ||||
|         tool: 'customBiggerIsBetter ' | ||||
|         # Where the output from the benchmark tool is stored | ||||
|         output-file-path: result.json | ||||
|         # Path to directory which contains benchmark files on GitHub pages branch | ||||
|         benchmark-data-dir-path: 'dev/benchmarks' | ||||
|         github-token: ${{ secrets.GITHUB_TOKEN }} | ||||
|         auto-push: true | ||||
|         # Show alert with commit comment on detecting possible performance regression | ||||
|         alert-threshold: '200%' | ||||
|         comment-on-alert: true | ||||
|         # Workflow will fail when an alert happens | ||||
|         fail-on-alert: true | ||||
|     - name: Clean the environment | ||||
|       if: ${{ always() }} | ||||
|       run: docker stop ${{ env.CONTAINER_NAME }} | ||||
| 
 | ||||
|   FIO_Test: | ||||
|     timeout-minutes: 60 | ||||
|     runs-on: ${{ matrix.self_runner }} | ||||
|     strategy: | ||||
|       matrix: | ||||
|         self_runner: [[self-hosted, SGX2-HW, benchmark]] | ||||
| 
 | ||||
|     steps: | ||||
|     - name: Clean before running | ||||
|       run: | | ||||
|         sudo chown -R ${{ secrets.CI_ADMIN }} "${{ github.workspace }}" | ||||
| 
 | ||||
|     - uses: AutoModality/action-clean@v1 | ||||
| 
 | ||||
|     - name: Checkout code | ||||
|       uses: actions/checkout@v2 | ||||
|       with: | ||||
|         submodules: true | ||||
|         ref: 1.0.0-preview | ||||
| 
 | ||||
|     - uses: ./.github/workflows/composite_action/hw | ||||
|       with: | ||||
|         container-name: ${{ github.job }} | ||||
|         build-envs: 'OCCLUM_RELEASE_BUILD=1' | ||||
| 
 | ||||
|     - name: Run fio download and build | ||||
|       run: docker exec ${{ env.CONTAINER_NAME }} bash -c "cd /root/occlum/demos/benchmarks/fio && ./fio_microbench.sh" | ||||
| 
 | ||||
|     - name: Copy result | ||||
|       run: docker cp ${{ env.CONTAINER_NAME }}:/root/occlum/demos/benchmarks/fio/result.json . | ||||
| 
 | ||||
|     # Run `github-action-benchmark` action | ||||
|     - name: Store benchmark result | ||||
|       uses: benchmark-action/github-action-benchmark@v1 | ||||
|       with: | ||||
|         name: FIO Benchmark | ||||
|         # What benchmark tool the output.txt came from | ||||
|         tool: 'customBiggerIsBetter' | ||||
|         # Where the output from the benchmark tool is stored | ||||
|         output-file-path: result.json | ||||
|         # Path to directory which contains benchmark files on GitHub pages branch | ||||
|         benchmark-data-dir-path: 'dev/benchmarks' | ||||
|         github-token: ${{ secrets.GITHUB_TOKEN }} | ||||
|         auto-push: true | ||||
|         # Show alert with commit comment on detecting possible performance regression | ||||
|         alert-threshold: '200%' | ||||
|         comment-on-alert: true | ||||
|         # Workflow will fail when an alert happens | ||||
|         fail-on-alert: true | ||||
|     - name: Clean the environment | ||||
|       if: ${{ always() }} | ||||
|       run: docker stop ${{ env.CONTAINER_NAME }} | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user