Browse Source

Fixed #33862 -- Added workflow to run the ASV benchmarks for labeled PR.

Deepak Dinesh 2 năm trước cách đây
mục cha
commit
982a970251
1 tập tin đã thay đổi với 41 bổ sung0 xóa
  1. 41 0
      .github/workflows/benchmark.yml

+ 41 - 0
.github/workflows/benchmark.yml

@@ -0,0 +1,41 @@
+name: Benchmark
+
+on:
+  pull_request:
+    types: [ labeled, synchronize, opened, reopened ]
+
+permissions:
+   contents: read
+
+jobs:
+  Run_benchmarks:
+    if: contains(github.event.pull_request.labels.*.name, 'benchmark')
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout Benchmark Repo
+        uses: actions/checkout@v3
+        with:
+          repository: django/django-asv
+          path: "."
+      - name: Install Requirements
+        run: pip install -r requirements.txt
+      - name: Cache Django
+        uses: actions/cache@v3
+        with:
+          path: Django/*
+          key: Django
+      - name: Run Benchmarks
+        shell: bash -l {0}
+        run: |-
+          asv machine --machine ubuntu-latest --yes > /dev/null
+          echo 'Beginning benchmarks...'
+          asv continuous --interleave-processes -a processes=2 --split --show-stderr 'HEAD^' 'HEAD' |\
+          sed -n -E '/(before.*after.*ratio)|(BENCHMARKS)/,$p' >> out.txt
+          echo 'Benchmarks Done.'
+          echo '```' >> $GITHUB_STEP_SUMMARY
+          cat out.txt >> $GITHUB_STEP_SUMMARY
+          echo '```' >> $GITHUB_STEP_SUMMARY
+          if grep -q "PERFORMANCE DECREASED" out.txt;
+          then
+            exit 1
+          fi