From c962da908c865398cc4702950035cfbeb709e7af Mon Sep 17 00:00:00 2001 From: "(Eliseo) Nathaniel Ruiz Nowell" Date: Thu, 23 Dec 2021 00:36:47 -0800 Subject: [PATCH] Merge parallel benchmarks + include propagator + latest GH action (#838) * Include propagator benchmarks + latest GH action * When we moved the aws-xray propagator in #720, we needed to update the benchmark step of the workflow * Additionally, the GH action has evolved since we added benchmarks so we should use the latest version * Merge all parallel benchmarks after they complete --- .github/workflows/test.yml | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1a72cbcfc..8bc5782d4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,17 +45,40 @@ jobs: key: v4-build-tox-cache-${{ env.RUN_MATRIX_COMBINATION }}-${{ hashFiles('tox.ini', 'gen-requirements.txt', 'dev-requirements.txt') }} - name: run tox run: tox -f ${{ matrix.python-version }}-${{ matrix.package }} -- --benchmark-json=${{ env.RUN_MATRIX_COMBINATION }}-benchmark.json - - name: Find and merge benchmarks + - name: Find and merge ${{ matrix.package }} benchmarks # TODO: Add at least one benchmark to every package type to remove this (#249) - if: matrix.package == 'sdkextension' + if: matrix.package == 'sdkextension' || matrix.package == 'propagator' + run: >- + mkdir -p benchmarks; + jq -s '.[0].benchmarks = ([.[].benchmarks] | add) + | if .[0].benchmarks == null then null else .[0] end' + **/**/tests/*${{ matrix.package }}*-benchmark.json > benchmarks/output_${{ matrix.package }}.json + - name: Upload all benchmarks under same key as an artifact + if: ${{ success() }} + uses: actions/upload-artifact@v2 + with: + name: benchmarks + path: benchmarks/output_${{ matrix.package }}.json + combine-benchmarks: + runs-on: ubuntu-latest + needs: build + if: ${{ always() }} + name: Combine benchmarks from previous build job + steps: + - name: Checkout Contrib Repo @ SHA - ${{ github.sha }} + uses: actions/checkout@v2 + - name: Download all benchmarks as artifact using key + uses: actions/download-artifact@v2 + with: + name: benchmarks + path: benchmarks + - name: Find and merge all benchmarks run: >- jq -s '.[0].benchmarks = ([.[].benchmarks] | add) | if .[0].benchmarks == null then null else .[0] end' - **/**/tests/*${{ matrix.package }}*-benchmark.json > output.json + benchmarks/output_*.json > output.json; - name: Report on benchmark results - # TODO: Add at least one benchmark to every package type to remove this (#249) - if: matrix.package == 'sdkextension' - uses: rhysd/github-action-benchmark@v1 + uses: benchmark-action/github-action-benchmark@v1 with: name: OpenTelemetry Python Benchmarks - Python ${{ env[matrix.python-version ]}} - ${{ matrix.package }} tool: pytest