[POC - 3] New commit interface #1080
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copied from Flavio W. Brasil's work on Kyo: https://github.com/fwbrasil/kyo | |
name: profile | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: [ opened, reopened, synchronize ] | |
permissions: | |
contents: write | |
deployments: write | |
jobs: | |
benchmark: | |
name: Profile benchmarks | |
runs-on: ubuntu-latest | |
if: ${{ !github.event.pull_request.head.repo.fork }} # comes from https://github.com/orgs/community/discussions/25217#discussioncomment-3246904 | |
steps: | |
- uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Setup Java | |
uses: actions/[email protected] | |
with: | |
distribution: temurin | |
java-version: 17 | |
check-latest: true | |
- name: Use CI sbt jvmopts | |
shell: bash | |
run: | | |
mv .jvmopts .jvmopts_old | |
mv .jvmopts-ci .jvmopts | |
cat .jvmopts | |
- name: install async-profiler | |
run: | | |
ls -al | |
cd /home/runner | |
wget https://github.com/jvm-profiling-tools/async-profiler/releases/download/v2.9/async-profiler-2.9-linux-x64.tar.gz | |
tar -xvzf async-profiler-2.9-linux-x64.tar.gz | |
sudo mkdir -p /usr/java/packages/lib/ | |
sudo cp async-profiler-2.9-linux-x64/build/libasyncProfiler.so /usr/java/packages/lib/ | |
sudo sysctl kernel.perf_event_paranoid=1 | |
sudo sysctl kernel.kptr_restrict=0 | |
- name: run benchmarks | |
run: | | |
ls -al | |
cd /home/runner/work/zio-kafka/zio-kafka/ | |
sbt "zioKafkaBench/Jmh/run -wi 10 -i 10 -r 1 -w 1 -t 1 -rf json -foe true -prof async:output=flamegraph" | |
- name: Rollback - Use CI sbt jvmopts | |
shell: bash | |
run: | | |
mv .jvmopts .jvmopts-ci | |
mv .jvmopts_old .jvmopts | |
cat .jvmopts | |
- name: Store flamegraphs | |
run: | | |
git config pull.rebase true | |
export REV=$(git rev-parse --short HEAD) | |
ls -al zio-kafka-bench/ | |
mv zio-kafka-bench/zio.kafka.bench.* /tmp | |
git clean -fdx | |
git checkout gh-pages | |
git pull | |
mkdir -p dev/profile/$REV | |
mv /tmp/zio.kafka.bench.* dev/profile/$REV | |
cd dev/profile | |
find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && tree -H . -o index.html" \; | |
cd ../../ | |
git config --global user.name "zio-kafka CI" | |
git config --global user.email "[email protected]" | |
git add . | |
git commit -m "flamegraphs for $REV" | |
git push |