| name: Performance Test |
| |
| on: |
| pull_request: |
| branches: [master, 'release/**'] |
| paths-ignore: |
| - 'docs/**' |
| - '**/*.md' |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| performance: |
| if: ${{ startsWith(github.event.pull_request.title, 'perf:') }} |
| runs-on: ubuntu-latest |
| timeout-minutes: 45 |
| |
| steps: |
| - name: Check out code |
| uses: actions/checkout@v3.2.0 |
| with: |
| submodules: recursive |
| |
| - name: Cache deps |
| uses: actions/cache@v3 |
| env: |
| cache-name: cache-deps |
| with: |
| path: deps |
| key: ${{ runner.os }}-${{ env.cache-name }}-${{ matrix.os_name }}-${{ hashFiles('rockspec/apisix-master-0.rockspec') }} |
| |
| - name: Install Dependencies |
| run: sudo ./ci/performance_test.sh install_dependencies |
| |
| - name: Install wrk2 |
| run: sudo ./ci/performance_test.sh install_wrk2 |
| |
| - name: Install SystemTap Tools |
| run: sudo ./ci/performance_test.sh install_stap_tools |
| |
| - name: Perf Test |
| run: ./ci/performance_test.sh run_performance_test |
| |
| - name: Upload Performance Test Result |
| uses: actions/upload-artifact@v3 |
| with: |
| name: perf.txt |
| path: | |
| output/performance.txt |
| retention-days: 3 |
| |
| - name: Upload flamegrpah |
| uses: actions/upload-artifact@v3 |
| with: |
| name: flamegraph.svg |
| path: | |
| output/flamegraph.svg |
| retention-days: 3 |
| |
| # you can view the generated flamegraph by |
| # 1. open https://github.com/apache/apisix/actions |
| # 2. click the "Performance Test" button |
| # 3. choose the workflows that belong to your commits |
| # we need a way to have this address automatically appear in the comments of the PR running this workflow. |