diff --git a/.github/workflows/jmeter-benchmarking.yaml b/.github/workflows/jmeter-benchmarking.yaml index bede762c2d..ad609e22b8 100644 --- a/.github/workflows/jmeter-benchmarking.yaml +++ b/.github/workflows/jmeter-benchmarking.yaml @@ -1,44 +1,56 @@ -name: Minimal setup +name: JMH Example on: push: + pull_request: branches: - main +# permissions: +# contents: write +# deployments: write + jobs: benchmark: + name: Run JMH benchmark example runs-on: ubuntu-latest steps: - - name: Continuous Benchmark - uses: benchmark-action/github-action-benchmark@v1.18.0 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v2 + with: + distribution: 'adopt' + java-version: '11' + - name: Run benchmark + run: | + mvn clean verify + java -jar target/benchmarks.jar -wi 1 -i 3 -f 1 -rf json + + - name: Store benchmark result + uses: benchmark-action/github-action-benchmark@v1 + with: + name: JMH Benchmark + tool: 'jmh' + output-file-path: examples/java/jmh-result.json + # Use personal access token instead of GITHUB_TOKEN due to https://github.community/t/github-action-not-triggering-gh-pages-upon-push/16096 + github-token: ${{ secrets.GITHUB_TOKEN }} + auto-push: true + # Show alert with commit comment on detecting possible performance regression + alert-threshold: '200%' + comment-on-alert: true + fail-on-alert: true + # alert-comment-cc-users: '@michaelmior' -# jobs: -# benchmark: -# name: Performance regression check -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/setup-go@v4 -# with: -# go-version: "stable" -# # Run benchmark with `go test -bench` and stores the output to a file -# - name: Run benchmark -# run: go mod init && go test -bench 'BenchmarkFib' | tee output.txt -# # Download previous benchmark result from cache (if exists) -# - name: Download previous benchmark data -# uses: actions/cache@v1 -# with: -# path: ./cache -# key: ${{ runner.os }}-benchmark -# # Run `github-action-benchmark` action -# - name: Store benchmark result -# uses: benchmark-action/github-action-benchmark@v1 -# with: -# # What benchmark tool the output.txt came from -# tool: 'go' -# # Where the output from the benchmark tool is stored -# output-file-path: output.txt -# # Where the previous data file is stored -# external-data-json-path: ./cache/benchmark-data.json -# # Workflow will fail when an alert happens -# fail-on-alert: true -# # Upload the updated cache file for the next job by actions/cache + - name: Store benchmark result - separate results repo + uses: benchmark-action/github-action-benchmark@v1 + with: + name: JMH Benchmark + tool: 'jmh' + output-file-path: examples/java/jmh-result.json + # Use personal access token instead of GITHUB_TOKEN due to https://github.community/t/github-action-not-triggering-gh-pages-upon-push/16096 + github-token: ${{ secrets.BENCHMARK_ACTION_BOT_TOKEN }} + auto-push: true + # Show alert with commit comment on detecting possible performance regression + alert-threshold: '200%' + comment-on-alert: true + fail-on-alert: true + # alert-comment-cc-users: '@michaelmior' + gh-repository: 'github.com/benchmark-action/github-action-benchmark-results' \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000..28a14cc78e --- /dev/null +++ b/pom.xml @@ -0,0 +1,172 @@ + + + + 4.0.0 + + org.openjdk.jmh.samples + jmh-sample + 1.0 + jar + + JMH benchmark sample: Java + + + + + + org.openjdk.jmh + jmh-core + ${jmh.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh.version} + provided + + + + + UTF-8 + + + 1.29 + + + 1.8 + + + benchmarks + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + ${javac.target} + ${javac.target} + ${javac.target} + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 + + + package + + shade + + + ${uberjar.name} + + + org.openjdk.jmh.Main + + + + + + + *:* + + + + + + + + + + + + maven-clean-plugin + 2.5 + + + maven-deploy-plugin + 2.8.1 + + + maven-install-plugin + 2.5.1 + + + maven-jar-plugin + 2.4 + + + maven-javadoc-plugin + 2.9.1 + + + maven-resources-plugin + 2.6 + + + maven-site-plugin + 3.3 + + + maven-source-plugin + 2.2.1 + + + maven-surefire-plugin + 2.17 + + + + + + \ No newline at end of file