Skip to content

Commit

Permalink
ci: Automating scheduling benchmarking testing for PRs
Browse files Browse the repository at this point in the history
  • Loading branch information
DerekFrank committed Mar 6, 2025
1 parent e24a934 commit a0f2dae
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 0 deletions.
45 changes: 45 additions & 0 deletions .github/actions/run-bench-test/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: RunBenchTest
description: 'Runs a given Benchmark Test'
inputs:
path:
description: Path to the performance test
default: ""
runName:
description: Name of the run, for the purpose of file naming and github comments
default: ""
githubToken:
descriptuon: Github secret token to use for commenting on PR
default: ""
runs:
using: "composite"
steps:
- name: Run Test
id: test-run
shell: bash
run: |
{
cd ${{ inputs.path }}
mkdir output
go test -tags=test_performance -run=1 -bench=. -count=1 -cpuprofile output/cpu.out -memprofile output/mem.out > output/results.txt
echo 'OUTPUT<<EOF'
cat output/results.txt
echo EOF
} >> "$GITHUB_OUTPUT"
- uses: actions/upload-artifact@v4
id: artifact-upload
with:
name: ${{ inputs.runName }}
path: ${{ inputs.path }}/output
- uses: actions/github-script@v7
env:
RESULTS: ${{ steps.test-run.outputs.OUTPUT }}
UPLOAD: ${{ steps.artifact-upload.outputs.artifact-url }}
with:
github-token: ${{ inputs.githubToken }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `# :mag: ${{ inputs.runName }} :mag:\nResults of benchmarking testing in \`${{ inputs.path }}\`: \n\`\`\`${process.env.RESULTS}\n\`\`\`\n${process.env.UPLOAD}`
})
8 changes: 8 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,11 @@ updates:
action-deps:
patterns:
- '*'
- package-ecosystem: github-actions
directory: .github/actions/run-bench-test
schedule:
interval: weekly
groups:
action-deps:
patterns:
- '*'
54 changes: 54 additions & 0 deletions .github/workflows/scheduling-benchmarking.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: "Scheduling Benchmarking"

on:
pull_request:
types:
- opened
- edited
- synchronize
- reopened
paths:
- "**.go"
branches:
- main

jobs:
before:
name: Before PR
runs-on: ubuntu-latest
permissions:
pull-requests: write
strategy:
fail-fast: false
matrix:
path: ["pkg/controllers/provisioning/scheduling"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.base.sha }}
- uses: ./.github/actions/run-bench-test
with:
path: ${{ matrix.path }}
runName: before-${{ strategy.job-index }}
githubToken: ${{ secrets.GITHUB_TOKEN }}
after:
name: After PR
runs-on: ubuntu-latest
permissions:
pull-requests: write
strategy:
fail-fast: false
matrix:
path: ["pkg/controllers/provisioning/scheduling"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- uses: ./.github/actions/run-bench-test
with:
path: ${{ matrix.path }}
runName: after-${{ strategy.job-index }}
githubToken: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit a0f2dae

Please sign in to comment.