diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 715da8f..fc0a2c7 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -30,3 +30,40 @@ jobs: steps: - uses: actions/checkout@v4 - run: swift format lint -rs . + benchmark: + if: ${{ github.ref != 'refs/heads/main' }} + needs: test + runs-on: ubuntu-latest + container: swiftlang/swift:nightly-6.0-jammy + steps: + - uses: actions/checkout@v4 + - run: apt-get update && apt-get install --no-install-recommends -y libjemalloc-dev + - run: swift package --package-path Benchmarks benchmark baseline update pull_request --no-progress --quiet + - name: Switch to branch 'main' + uses: actions/checkout@v4 + with: + ref: main + clean: false + - run: swift package --package-path Benchmarks benchmark baseline update main --no-progress --quiet + - name: swift package benchmark baseline check + continue-on-error: true + run: | + echo '## Benchmark Summary' >> "$GITHUB_STEP_SUMMARY" + echo "$(date)" >> "$GITHUB_STEP_SUMMARY" + swift package --package-path Benchmarks benchmark baseline check main pull_request --format markdown >> "$GITHUB_STEP_SUMMARY" + - name: swift package benchmark baseline compare + run: | + echo >> "$GITHUB_STEP_SUMMARY" + echo '---' >> "$GITHUB_STEP_SUMMARY" + swift package --package-path Benchmarks benchmark baseline compare main pull_request --no-progress --quiet --format markdown >> "$GITHUB_STEP_SUMMARY" + - name: Pull request comment text + id: prtest + run: | + echo 'PRTEST<> "$GITHUB_OUTPUT" + cat "$GITHUB_STEP_SUMMARY" >> "$GITHUB_OUTPUT" + echo 'EOF' >> "$GITHUB_OUTPUT" + - name: Comment PR + uses: thollander/actions-comment-pull-request@v3 + with: + message: ${{ steps.prtest.outputs.PRTEST }} + comment-tag: benchmark