1919 required : false
2020 default : " JRTCompare2Benchmark"
2121 jmhArgs :
22- description : " Extra JMH arguments"
22+ description : " Extra JMH arguments; when provided, CLI options override benchmark annotations "
2323 required : false
24- default : " -wi 5 -i 10 -f 3 "
24+ default : " "
2525 publish :
2626 description : " Publish results to GitHub Pages"
2727 required : false
@@ -34,7 +34,6 @@ concurrency:
3434
3535env :
3636 DEFAULT_JMH_PATTERN : JRTCompare2Benchmark
37- DEFAULT_JMH_ARGS : -wi 5 -i 10 -f 3
3837 BENCHMARK_SITE_URL : https://jawk.io/
3938
4039jobs :
@@ -62,19 +61,25 @@ jobs:
6261 - name : Select benchmark ref
6362 id : select
6463 shell : bash
64+ env :
65+ INPUT_REF : ${{ inputs.ref }}
66+ INPUT_VERSION : ${{ inputs.version }}
67+ INPUT_PATTERN : ${{ inputs.pattern }}
68+ INPUT_JMH_ARGS : ${{ inputs.jmhArgs }}
69+ INPUT_PUBLISH : ${{ inputs.publish }}
6570 run : |
6671 if [ "${{ github.event_name }}" = "push" ]; then
6772 ref="${GITHUB_REF_NAME}"
6873 version="${GITHUB_REF_NAME}"
6974 pattern="${DEFAULT_JMH_PATTERN}"
70- jmh_args="${DEFAULT_JMH_ARGS} "
75+ jmh_args=""
7176 publish="true"
7277 else
73- ref="${{ inputs.ref } }"
74- version="${{ inputs.version } }"
75- pattern="${{ inputs.pattern } }"
76- jmh_args="${{ inputs.jmhArgs } }"
77- publish="${{ inputs.publish } }"
78+ ref="${INPUT_REF }"
79+ version="${INPUT_VERSION }"
80+ pattern="${INPUT_PATTERN }"
81+ jmh_args="${INPUT_JMH_ARGS }"
82+ publish="${INPUT_PUBLISH }"
7883 fi
7984
8085 if [ -z "${ref}" ]; then
@@ -86,16 +91,18 @@ jobs:
8691 if [ -z "${pattern}" ]; then
8792 pattern="${DEFAULT_JMH_PATTERN}"
8893 fi
89- if [ -z "${jmh_args}" ]; then
90- jmh_args="${DEFAULT_JMH_ARGS}"
94+ if [[ "${ref}" == -* ]]; then
95+ echo "Benchmark ref must not start with '-'." >&2
96+ exit 1
9197 fi
9298
9399 git fetch --tags --force origin
94- if git rev-parse --verify --quiet "${ref}^{commit}" > /dev/null ; then
95- git checkout "${ref }"
100+ if commit="$( git rev-parse --verify --quiet -- "${ref}^{commit}")" ; then
101+ git checkout --detach "${commit }"
96102 else
97- git fetch origin "${ref}"
98- git checkout FETCH_HEAD
103+ git fetch origin -- "${ref}"
104+ commit="$(git rev-parse --verify --quiet -- "FETCH_HEAD^{commit}")"
105+ git checkout --detach "${commit}"
99106 fi
100107
101108 safe_version="$(printf '%s' "${version}" | tr '/\\ ' '---' | tr -cd 'A-Za-z0-9._-')"
0 commit comments