Skip to content

#49: GitHub CI Benchmarking #11

#49: GitHub CI Benchmarking

#49: GitHub CI Benchmarking #11

Workflow file for this run

name: 'Benchmark'
on:
push:
paths:
- '**.f90'
- '**.fpp'
- '**.py'
- '**.yml'
- 'mfc.sh'
- 'CMakeLists.txt'
- 'requirements.txt'
pull_request:
jobs:
self:
name: Georgia Tech | Phoenix (NVHPC)
if: github.repository == 'MFlowCode/MFC'
strategy:
matrix:
device: ['cpu', 'gpu']
runs-on:
group: phoenix
labels: self-hosted
steps:
- name: Clone - PR
uses: actions/checkout@v3
- name: Bench - PR
run: |
bash .github/workflows/phoenix/submit.sh .github/workflows/phoenix/bench.sh ${{ matrix.device }}
mv bench-${{ matrix.device }}.out ~/bench-${{ matrix.device }}-pr.out
mv bench-${{ matrix.device }}.yaml ~/bench-${{ matrix.device }}-pr.yaml
- name: Clone - Master
uses: actions/checkout@v3
with:
repository: henryleberre/MFC
ref: master
- name: Bench - Master
run: |
bash .github/workflows/phoenix/submit.sh .github/workflows/phoenix/bench.sh ${{ matrix.device }}
mv bench-${{ matrix.device }}.out ~/bench-${{ matrix.device }}-master.out
mv bench-${{ matrix.device }}.yaml ~/bench-${{ matrix.device }}-master.yaml
- name: Post Comment
run: |
PR_ID=$(echo "${{ github.event_name }}" | jq --raw-output .pull_request.number)
PR_COMMENT=`python3 .github/workflows/phoenix/compare.py ~/bench-${{ matrix.device }}-master.yaml ~/bench-${{ matrix.device }}-pr.yaml`
echo "Posting comment on PR #${PR_ID}: ${PR_COMMENT}"
curl -X POST \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/${{ github.repository }}/issues/${PR_ID}/comments" \
-d "{\"body\":\"${PR_COMMENT}\"}"
- name: Post Comment
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: process.env.BENCH_COMMENT
})
- name: Print
if: always()
run: |
cat ~/bench-${{ matrix.device }}-master.yaml || true
cat ~/bench-${{ matrix.device }}-pr.yaml || true
cat ~/bench-${{ matrix.device }}-master.out || true
cat ~/bench-${{ matrix.device }}-pr.out || true