diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json
index 4f66ff9aa..eebbdf0d6 100644
--- a/.github/renovate-tracked-deps.json
+++ b/.github/renovate-tracked-deps.json
@@ -58,7 +58,9 @@
},
".github/workflows/micrometer-compatibility.yml": {
"regex": [
- "mise"
+ "micrometer-metrics/micrometer",
+ "mise",
+ "zeitlinger/micrometer"
]
},
".github/workflows/native-tests.yml": {
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index db0127bf5..b959e853e 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -77,5 +77,21 @@
"\\s*(?[^<]+)"
]
},
+ {
+ customType: "regex",
+ description: "track the latest Micrometer release for upstream compatibility",
+ managerFilePatterns: ["/^\\.github\\/workflows\\/micrometer-compatibility\\.yml$/"],
+ matchStrings: [
+ "# renovate: datasource=(?\\S+) depName=(?\\S+) packageName=(?\\S+)\\n\\s*ref:\\s*(?v[0-9][^\\s]*)",
+ ],
+ },
+ {
+ customType: "regex",
+ description: "pin the Micrometer typed-descriptor compatibility ref",
+ managerFilePatterns: ["/^\\.github\\/workflows\\/micrometer-compatibility\\.yml$/"],
+ matchStrings: [
+ "# renovate: datasource=(?\\S+) depName=(?\\S+) packageName=(?\\S+) currentValue=(?\\S+)\\n\\s*ref:\\s*(?[a-f0-9]{40})",
+ ],
+ },
],
}
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index 9ad95d807..4811e4a10 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -4,22 +4,30 @@ name: Micrometer Compatibility
on:
pull_request:
workflow_dispatch:
- inputs:
- micrometer-repository:
- description: Micrometer repository to test, in owner/name form
- required: false
- default: micrometer-metrics/micrometer
- micrometer-ref:
- description: Micrometer branch, tag, or commit to test
- required: true
permissions: {}
jobs:
- micrometer-compatibility:
+ compat-test:
+ name: ${{ matrix.name }}
runs-on: ubuntu-24.04
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - name: upstream
+ repository: micrometer-metrics/micrometer
+ # renovate: datasource=github-releases depName=micrometer-metrics/micrometer packageName=micrometer-metrics/micrometer
+ ref: v1.16.5
+ - name: typed-descriptor
+ # TODO: remove this temporary opt-in leg once Micrometer switches the
+ # Prometheus client integration to typed descriptors by default.
+ # Follow-up: https://github.com/prometheus/client_java/issues/2182
+ repository: zeitlinger/micrometer
+ # renovate: datasource=git-refs depName=zeitlinger/micrometer packageName=https://github.com/zeitlinger/micrometer currentValue=feat/prometheus-client-opt-in
+ ref: 1af1b3185058941eea57dc467bfe0df5a4786fe4
steps:
- - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1
@@ -35,6 +43,19 @@ jobs:
- name: Run Micrometer compatibility tests
working-directory: .mise/envs/micrometer
env:
- MICROMETER_REPOSITORY: ${{ inputs.micrometer-repository || 'micrometer-metrics/micrometer' }}
- MICROMETER_REF: ${{ inputs.micrometer-ref }}
+ MICROMETER_REPOSITORY: ${{ matrix.repository }}
+ MICROMETER_REF: ${{ matrix.ref }}
run: mise compat-test
+
+ micrometer-compatibility:
+ name: micrometer-compatibility
+ runs-on: ubuntu-24.04
+ needs: compat-test
+ if: always()
+ steps:
+ - name: Aggregate matrix results
+ run: |
+ if [[ "${{ needs.compat-test.result }}" != "success" ]]; then
+ echo "compat-test matrix failed: ${{ needs.compat-test.result }}"
+ exit 1
+ fi