From d525038ae8f2e21623d573693a2645815a321d3e Mon Sep 17 00:00:00 2001 From: Mark Andreev Date: Sun, 21 Jun 2026 22:25:04 +0100 Subject: [PATCH] Fix perf-runner issues --- .github/workflows/performance.yaml | 34 ++++++++++++++++++++++++++-- infra/perf-runner/user-data.sh.tftpl | 4 ++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/.github/workflows/performance.yaml b/.github/workflows/performance.yaml index e99b303..27ba4a9 100644 --- a/.github/workflows/performance.yaml +++ b/.github/workflows/performance.yaml @@ -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: ".*" @@ -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/ diff --git a/infra/perf-runner/user-data.sh.tftpl b/infra/perf-runner/user-data.sh.tftpl index 55531b8..7343099 100644 --- a/infra/perf-runner/user-data.sh.tftpl +++ b/infra/perf-runner/user-data.sh.tftpl @@ -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 \ @@ -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