Commit Graph

192 Commits

Author SHA1 Message Date
Jamie Tanna 219c8f718e fix(manager/github-actions): treat Terraform/OpenTofu versions as constraints
While looking at the fix for `actions/setup-java`, we noticed that
`hashicorp/setup-terraform` and `opentofu/setup-opentofu` may also be
affected, as both note:

> Instead of a full version string, you can also specify a constraint
> string (see Semver Ranges for available range specifications).

As these fall back to `semver-coerced`, which coerces `~1.1.0` to
`1.1.0`, Renovate then raises a PR rewriting the constraint into a full
version, which isn't the intent.

We can use `npm` versioning, which handles the constraint strings the
Actions document, and leaves `latest` alone as a value we have no
version to bump it to.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 14:14:43 +01:00
Jamie Tanna 08d11825c8 fix(manager/github-actions): treat setup-julia's version as a range
While looking at the fix for `actions/setup-java`, we noticed that
`julia-actions/setup-julia` may also be affected, as it notes:

> Internally the action uses node's semver package to resolve version
> ranges.

Its documented values therefore include `1.0`, which "matches the
highest available version starting with that prefix", as well as
`^1.3.0-rc1` and `~1.3.0-rc1`.

As these fall back to `semver-coerced`, Renovate then raises a PR to
bump `1.10` to the full-precision tag `v1.11.7`, which isn't the intent.

We can instead use `npm` versioning, as we already do for
`goreleaser/goreleaser-action` and `j178/prek-action`.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 14:14:43 +01:00
Jamie Tanna fe649335ce fix(manager/github-actions): treat dotnet-version as a range
While looking at the fix for `actions/setup-java`, we noticed that
`actions/setup-dotnet` may also be affected, as it notes:

> - **A.B** or **A.B.x** installs the latest patch version of .NET SDK
>   on the channel
> - **A** or **A.x** installs the latest minor version of the specified
>   major tag

alongside `A.B.Cxx` for "the latest version of the specific SDK release"
and `latest` for "the highest active .NET SDK version".

As these fall back to `semver-coerced`, which happily coerces `8.0.x` to
`8.0.0`, Renovate then raises a PR to bump to a full version such as
`9.0.100`, which isn't the intent.

Rather than the `semver-partial` versioning used for the other Actions,
here we can use `npm` versioning, which understands the x-range form
too, and safely rejects `8.0.4xx`/`latest` as values we have no version
to bump them to.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 14:14:43 +01:00
Jamie Tanna 71aa945494 fix(manager/github-actions): don't pin partial setup-dart SDK versions
While looking at the fix for `actions/setup-java`, we noticed that
`dart-lang/setup-dart` may also be affected, as it notes:

> An SDK release version - e.g. `2.19` or `3.1`. This will install the
> latest patch release for that specific release version.

As the `sdk` value falls back to `semver-coerced`, `3.5` is treated as a
pinned version, so Renovate then raises a PR to bump to a full version
such as `3.9.5`, which isn't the intent.

We can reuse the same `semver-partial` handling to keep the value's
precision.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 14:14:43 +01:00
Jamie Tanna e0a77f8121 fix(manager/github-actions): don't pin partial ruby-versions
While looking at the fix for `actions/setup-java`, we noticed that the
`ruby/setup-ruby` may also be affected, as it notes:

> short version like '2.6', automatically using the latest release
> matching that version

As Ruby versioning treats `3.4` as a pinned version rather than a range,
we'd propose a patch upgrade rewriting it to `3.4.7`, losing the rolling
behaviour the workflow asked for.

We can reuse the `semver-partial` handling as a `partialValSchema`
helper, so short versions keep their precision and only exact versions
are looked up as pinned.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 14:14:43 +01:00
Jamie Tanna 967f480f6d fix(manager/github-actions): don't pin partial java-versions
As noted in #46249, `actions/setup-java` documents `java-version` as:

> Java version to install. Supports whole versions, semver ranges,
> early-access versions, and latest.

When the Java version is parsed using the versioning in
`workarounds:javaLTSVersions`, this leads to `11` looking older than
`11.0.32+101`, so Renovate then raises a PR to bump to a full version,
which isn't the intent.

Similar to the fix for mise in
5f5e58b822, we can use `semver-partial`
versioning for whole versions, so `11` stays `11` and only a new major
bumps it to `25`, and exempt `github-actions` from the preset rule that
would otherwise force the Java regex versioning back on.

The remaining documented forms (`21.x`, `>=21`, `21-ea`, `latest`) have
no version we could bump them to, so we skip them as
`unsupported-version` rather than mangling them.

`graalvm/setup-graalvm` reads the same datasource from its own
`java-version` input, so it gets the same treatment.

Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 14:14:43 +01:00
Jamie Tanna 2b84f8c13d refactor(manager/github-actions): restructure directory for known-actions (#46248)
As noted in #46242, the `known-actions.ts` file was getting a bit big.

Where we have dynamic extractions, using `transform`, we split these
into a `<datasource>-dynamic.ts` file.

Where we have multiple packages extracted from the same Action, we use
`multiple.ts`.

Per suggestion from Sebastian, we can break this down by the datasource
used by the Action's inputs.

We can also try to enforce the structure of the directories by adding a
test in each file.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 11:40:35 +00:00
Jamie Tanna 6763ca2704 refactor(manager/github-actions): don't advertise an incorrect datasource for graalvm (#46250)
As the graalvm Action doesn't actually use the `datasource`, given it is
dynamic based on the dependencies extracted, we should note this more
clearly with a sentinel string.

We could alternatively make `datasource` optional, but given this is the
only case right now, this is simpler.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 11:40:34 +00:00
Jamie Tanna 809e56572c test(versioning/conda): clarify latest is a valid version (#46246)
As a follow-up to 4b5a64e6e1, we should
make sure that we document the fact that `latest` is a valid version to
Conda.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 10:57:16 +00:00
Jamie Tanna 4b5a64e6e1 fix(manager/github-actions): don't try and upgrade non-versions of Gradle (#46242)
As noted in #46241.

Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-16 07:06:14 +00:00
Jamie Tanna 4a83bc324c docs(manager/github-actions): count how many Actions we support (#46233)
To brag a little bit, and because it's a long table!
2026-09-15 19:59:59 +00:00
Jamie Tanna cbd9e92db7 feat(manager/github-actions): support conda-incubator/setup-miniconda version inputs
As a more complex Action that takes different inputs.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna efae679b2a feat(manager/github-actions): support WillAbides/setup-go-faster go-version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna 38aa4b45a2 feat(manager/github-actions): support swift-actions/setup-swift swift-version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna a4a06127da feat(manager/github-actions): support jwlawson/actions-setup-cmake cmake-version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna cded589dcf feat(manager/github-actions): support baptiste0928/cargo-install crate and version
version has a default (latest), so real workflows commonly omit it
from with: entirely rather than passing an empty string.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna 91354ecdda feat(manager/github-actions): support crystal-lang/install-crystal version inputs
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna 0124aebe09 feat(manager/github-actions): support moonrepo/setup-rust channel
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna 0b93f81d64 feat(manager/github-actions): support moonrepo/setup-toolchain version inputs
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna 11ae208619 feat(manager/github-actions): support graalvm/setup-graalvm version inputs
graalvm/graalvm-ce-builds still alternates between jdk- and graal-
prefixed tags for current-era releases, so extractVersion matches both
rather than jdk- alone.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna 8848a65849 feat(manager/github-actions): support superfly/flyctl-actions/setup-flyctl version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna 6df95542c6 feat(manager/github-actions): support cue-lang/setup-cue version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:42:02 +01:00
Jamie Tanna bd6e85683e feat(manager/github-actions): support cue-lang/setup-cue version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna d830694b7b feat(manager/github-actions): support PyO3/maturin-action maturin-version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna f7d51a08e9 feat(manager/github-actions): support cargo-bins/cargo-binstall version
And ignore releases that aren't the main SemVer release.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna 75a52445ee feat(manager/github-actions): support julia-actions/setup-julia version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna 9cb1958104 feat(manager/github-actions): support dart-lang/setup-dart sdk
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna 1859552fa7 feat(manager/github-actions): support foundry-rs/foundry-toolchain version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna d1add64345 feat(manager/github-actions): support dagger/dagger-for-github version
As the repo publishes per-SDK/component release tags i.e.
`sdk/typescript/v0.21.9`, `helm/chart/v0.21.9`), we need to specify
`extractVersion` to extract the version as we need.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna 5e616ded2e feat(manager/github-actions): support hashicorp/setup-packer version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna 6934310a83 feat(manager/github-actions): support mozilla-actions/sccache-action version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna 677dbb41a2 feat(manager/github-actions): support supabase/setup-cli version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 11:10:59 +01:00
Jamie Tanna 6f6dc0d3e0 feat(manager/github-actions): support pulumi/actions pulumi-version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:29 +01:00
Jamie Tanna 295b59670c feat(manager/github-actions): support stCarolas/setup-maven maven-version
As Maven tags releases as maven-X.Y.Z rather than plain SemVer, we need to set a custom extractVersion.

As ranges can be used, we can treat it as Node-package-registry-style versioning.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:29 +01:00
Jamie Tanna e0cfb08c7b feat(manager/github-actions): support bufbuild/buf-setup-action version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:29 +01:00
Jamie Tanna 0cea46087f feat(manager/github-actions): support raven-actions/actionlint version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:29 +01:00
Jamie Tanna 99fa38194d feat(manager/github-actions): support actions-rust-lang/setup-rust-toolchain toolchain
As the Action only uses the last `toolchain` as the active one, we can
only update that value.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:29 +01:00
Jamie Tanna 323dfea8ef feat(manager/github-actions): support j178/prek-action prek-version
As this may be a SemVer range, we need to treat it as an npm version.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:29 +01:00
Jamie Tanna 59dea97d30 feat(manager/github-actions): support reviewdog/action-setup reviewdog_version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:29 +01:00
Jamie Tanna 3b252fe640 feat(manager/github-actions): support astral-sh/ruff-action version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:29 +01:00
Jamie Tanna e51ada8d4d feat(manager/github-actions): support biomejs/setup-biome version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna 5f013cbf11 feat(manager/github-actions): support abatilo/actions-poetry poetry-version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna 77b102c81f feat(manager/github-actions): support opentofu/setup-opentofu tofu_version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna 72f3c6ff5c feat(manager/github-actions): support goreleaser/goreleaser-action version
As it allows for a range, we need to parse it as if it's npm versioning.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna 159bbb256d feat(manager/github-actions): support erlef/setup-beam's version inputs
setup-beam is a bit more complex, as it has multiple inputs, and
`erlang/otp` releases as `OTP-x.y.z`, so we need to specify a custom
`extractVersion`.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna 76a36a07f4 feat(manager/github-actions): support helm/kind-action's version inputs
kind-action is a bit more complex, as it has multiple inputs.

Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna 4bca80b114 feat(manager/github-actions): support GitTools/actions/gitversion/setup's versionSpec
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna 5db81beff3 feat(manager/github-actions): support subosito/flutter-action's flutter-version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna d59c05a6a5 feat(manager/github-actions): support aquaproj/aqua-installer's aqua_version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00
Jamie Tanna 4431457780 feat(manager/github-actions): support cycjimmy/semantic-release-action semantic_version
Co-Authored-By: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
2026-09-15 10:31:28 +01:00