Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 32 additions & 2 deletions .github/workflows/performance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
inputs:
benchmark:
description: "JMH benchmark regex"
description: "JMH benchmark regex, optionally followed by JMH arguments"
required: true
default: ".*"

Expand All @@ -23,8 +23,38 @@ jobs:
./gradlew :mapsmith-benchmarks:jmh \
--args="${{ inputs.benchmark }} -rf json -rff $GITHUB_WORKSPACE/mapsmith-benchmarks/build/benchmarks/jmh-results.json"

- name: Add EC2 metadata to benchmark report
env:
RESULTS_DIR: ${{ github.workspace }}/mapsmith-benchmarks/build/benchmarks
IMDS_BASE_URL: http://169.254.169.254/latest
run: |
imds_token="$(curl --fail --silent --show-error --request PUT \
--header 'X-aws-ec2-metadata-token-ttl-seconds: 60' \
"$IMDS_BASE_URL/api/token")"
imds_get() {
curl --fail --silent --show-error \
--header "X-aws-ec2-metadata-token: $imds_token" \
"$IMDS_BASE_URL/meta-data/$1"
}

jq -n \
--arg instance_id "$(imds_get instance-id)" \
--arg instance_type "$(imds_get instance-type)" \
--arg availability_zone "$(imds_get placement/availability-zone)" \
--arg region "$(imds_get placement/region)" \
--slurpfile benchmarks "$RESULTS_DIR/jmh-results.json" \
'{
ec2: {
instance_id: $instance_id,
instance_type: $instance_type,
availability_zone: $availability_zone,
region: $region
},
benchmarks: $benchmarks[0]
}' > "$RESULTS_DIR/benchmark-report.json"

- name: Upload JMH results
uses: actions/upload-artifact@v4
with:
name: jmh-results
path: mapsmith-benchmarks/build/benchmarks/jmh-results.json
path: mapsmith-benchmarks/build/benchmarks/
4 changes: 2 additions & 2 deletions infra/perf-runner/user-data.sh.tftpl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ id -u runner >/dev/null 2>&1 || useradd --create-home --shell /bin/bash runner
install -d -o runner -g runner /opt/actions-runner
cd /opt/actions-runner

runner_version="$$(curl --fail --silent --show-error --location \
runner_version="$(curl --fail --silent --show-error --location \
https://api.github.com/repos/actions/runner/releases/latest | jq -r '.tag_name')"
curl --fail --silent --show-error --location \
--output actions-runner.tar.gz \
Expand All @@ -23,7 +23,7 @@ chown -R runner:runner /opt/actions-runner
runuser -u runner -- ./config.sh --unattended \
--url "https://github.com/${repository}" \
--token '${runner_token}' \
--name "$$(hostname)" \
--name "$(hostname)" \
--labels "mapsmith-perf" \
--replace

Expand Down