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