mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-28 20:52:57 +08:00
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
This commit is contained in:

committed by
GitHub

parent
9219677adb
commit
c962da908c
35
.github/workflows/test.yml
vendored
35
.github/workflows/test.yml
vendored
@ -45,17 +45,40 @@ jobs:
|
|||||||
key: v4-build-tox-cache-${{ env.RUN_MATRIX_COMBINATION }}-${{ hashFiles('tox.ini', 'gen-requirements.txt', 'dev-requirements.txt') }}
|
key: v4-build-tox-cache-${{ env.RUN_MATRIX_COMBINATION }}-${{ hashFiles('tox.ini', 'gen-requirements.txt', 'dev-requirements.txt') }}
|
||||||
- name: run tox
|
- name: run tox
|
||||||
run: tox -f ${{ matrix.python-version }}-${{ matrix.package }} -- --benchmark-json=${{ env.RUN_MATRIX_COMBINATION }}-benchmark.json
|
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)
|
# 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: >-
|
run: >-
|
||||||
jq -s '.[0].benchmarks = ([.[].benchmarks] | add)
|
jq -s '.[0].benchmarks = ([.[].benchmarks] | add)
|
||||||
| if .[0].benchmarks == null then null else .[0] end'
|
| 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
|
- name: Report on benchmark results
|
||||||
# TODO: Add at least one benchmark to every package type to remove this (#249)
|
uses: benchmark-action/github-action-benchmark@v1
|
||||||
if: matrix.package == 'sdkextension'
|
|
||||||
uses: rhysd/github-action-benchmark@v1
|
|
||||||
with:
|
with:
|
||||||
name: OpenTelemetry Python Benchmarks - Python ${{ env[matrix.python-version ]}} - ${{ matrix.package }}
|
name: OpenTelemetry Python Benchmarks - Python ${{ env[matrix.python-version ]}} - ${{ matrix.package }}
|
||||||
tool: pytest
|
tool: pytest
|
||||||
|
Reference in New Issue
Block a user