sourceconditiontarget

✔

✔

✗

Description

The temurin resource queries the Adoptium API for Eclipse Temurin JDK and JRE releases.

source

Returns one attribute of the matching release (its version name, or a URL to the installer, checksum or signature, depending on result).

condition

Verifies that a release exists, optionally across a set of platforms.

target

Not supported - a target fails with Target not supported for resource of kind 'temurin'.

Parameters

NameTypeDescriptionRequired
architecturestring

“architecture” defines the CPU architecture used to filter the Temurin releases.

compatible:

  • source
  • condition

default: x64

remark:

  • accepted values are defined by the Temurin API, see https://api.adoptium.net/q/swagger-ui/#/Types
  • common values are:
    • “x64” (Intel/AMD 64 bits)
    • “x86” (Intel/AMD 32 bits)
    • “ppc64” (PowerPC 64 bits)
    • “ppc64le” (PowerPC little endian 64 bits)
    • “s390x” (IBM Z)
    • “aarch64” (ARM 64 bits)
    • “arm” (ARM 32 bits)
    • “sparcv9” (Sparc 64 bits)
    • “riscv64” (RISC-V 64 bits)
  • “architecture” and “platforms” are mutually exclusive.

example:

  • architecture: aarch64
featureversioninteger

“featureversion” defines the major Java version used to filter the Temurin releases.

compatible:

  • source
  • condition

default: the most recent release of the “releaseline”.

remark:

  • accepted values are integers such as 8, 11, 17 or 21.
  • “featureversion” and “specificversion” are mutually exclusive.

example:

  • featureversion: 21
imagetypestring

“imagetype” defines the type of artifact used to filter the Temurin releases.

compatible:

  • source
  • condition

default: jdk

remark:

  • accepted values are “jdk”, “jre”, “testimage”, “debugimage”, “staticlibs”, “source” and “sbom”.

example:

  • imagetype: jre
operatingsystemstring

“operatingsystem” defines the operating system used to filter the Temurin releases.

compatible:

  • source
  • condition

default: linux

remark:

  • accepted values are defined by the Temurin API, see https://api.adoptium.net/q/swagger-ui/#/Types
  • common values are “linux”, “windows”, “mac”, “solaris”, “aix” and “alpine-linux”.
  • “operatingsystem” and “platforms” are mutually exclusive.

example:

  • operatingsystem: windows
platformsarray

“platforms” defines a list of platforms used to filter the Temurin releases.

compatible:

  • condition

default: empty, so no filtering per platform.

remark:

  • each platform combines an operating system and a CPU architecture separated by a slash ("/").
  • accepted operating systems and architectures are defined by the Temurin API, see https://api.adoptium.net/q/swagger-ui/#/Types
  • “platforms” is mutually exclusive with “architecture” and “operatingsystem”.

example:

  • platforms:
    • linux/x64
    • linux/aarch64
    • linux/s390x
    • alpine-linux/x64
    • windows/x64
projectstring

“project” defines the project used to filter the Temurin releases.

compatible:

  • source
  • condition

default: jdk

remark:

  • accepted values are “jdk”, “valhalla”, “metropolis”, “jfr” and “shenandoah”.

example:

  • project: valhalla
releaselinestring

“releaseline” defines the line of Temurin release to retrieve.

compatible:

  • source
  • condition

default: lts

remark:

  • accepted values are “lts” and “feature”.
  • only used when neither “featureversion” nor “specificversion” is set.

example:

  • releaseline: feature
releasetypestring

“releasetype” defines the type of Temurin release to retrieve.

compatible:

  • source
  • condition

default: ga

remark:

  • accepted values are “ga” (general availability) and “ea” (early access, such as nightly builds).

example:

  • releasetype: ea
resultstring

“result” defines the type of value returned from the retrieved Temurin release.

compatible:

  • source

default: version

remark:

  • accepted values are:
    • “version”: the version name, which is the Temurin scm release name.
    • “installer_url”: the HTTP URL of the binary release or installer.
    • “checksum_url”: the HTTP URL of the checksum file.
    • “signature_url”: the HTTP URL of the signature file.

example:

  • result: installer_url
specificversionstring

“specificversion” defines the exact Temurin version used to filter the Temurin releases.

compatible:

  • source
  • condition

default: empty

remark:

  • accepted values are a semantic version, a JDK version or a Temurin release name.
  • “featureversion” and “specificversion” are mutually exclusive.
  • in a condition, the source output overrides it unless “disablesourceinput” is set to true.

example:

  • specificversion: 17.0.2+8

Every field has a default, so an empty spec is valid and resolves to the latest LTS GA JDK for linux/x64.

FieldDefaultNotes

releaseline

lts

lts or feature.

releasetype

ga

ga for general availability, ea for early access.

featureversion

latest

The major Java version - 8, 11, 17, 21…

specificversion

unset

An exact version, a JDK version, or a Temurin release name. Takes precedence over featureversion, which is then ignored.

architecture

x64

x86, aarch64, arm, ppc64, ppc64le, s390x, sparcv9, riscv64.

operatingsystem

linux

windows, mac, solaris, aix, alpine-linux.

imagetype

jdk

jre, testimage, debugimage, staticlibs, source, sbom.

project

jdk

valhalla, metropolis, jfr, shenandoah.

result

version

installer_url, checksum_url, signature_url.

platforms is condition-only. It takes <os>/<architecture> pairs and passes only when a release exists for all of them, the check to run before publishing something that claims multi-platform support:

conditions:
  available:
    kind: temurin
    spec:
      featureversion: 21
      platforms:
        - linux/x64
        - linux/aarch64
        - alpine-linux/x64
        - windows/x64

Fallback when a new major is announced

Adoptium advertises the most recent feature release before its GA builds are indexed. Asked for the latest, Updatecli would then find nothing.

Instead it collects the candidate feature versions, tries the most recent first, and walks down to the next one whenever a version errors or returns no releases. The choice is only visible with --debug:

[temurin] no releases found for feature version 26, trying fallback
[temurin] using fallback feature version 25

So a source asking for the latest LTS keeps returning a usable version across the announcement window, rather than failing for a few days. Pin featureversion when you need a specific major regardless.

Example

# updatecli.yaml
sources:
  ## Returns the latest LTS version
  getLatestLtsVersion:
    kind: temurin

  ## Returns the latest feature release
  getLatestFeatureVersion:
    kind: temurin
    spec:
      releaseline: feature

  ## Returns the latest LTS "nightly build" (Early Availability) version
  getLatestLtsEarlyAvailabilityVersion:
    kind: temurin
    spec:
      releaseline: lts
      releasetype: ea

  ## Returns the latest "Valhalla" Project JDK 17 version available for Windows
  getLatestWindowsValhalla17Version:
    kind: temurin
    spec:
      featureversion: 17
      project: valhalla
      operatingsystem: windows

  # Returns the latest installer URL for Linux x64
  getLatestLTSLinuxAMD64InstallerURL:
    kind: temurin
    spec:
      result: installer_url

  ## Returns the latest LTS Installer's checksum URL for s390x Alpine Linux JRE
  getLatestJRE17LinuxS390xChecksumUrl:
    kind: temurin
    spec:
      operatingsystem: alpine-linux
      architecture: s390x
      imagetype: jre
      result: checksum_url

  ## Returns latest Installer's Signature URL of the Windows JDK version "17.0.2*"
  getLatestCustomVersionWindowsSignatureUrl:
    kind: temurin
    spec:
      version: "17.0.2"
      operatingsystem: windows
      result: signature_url

conditions:
  checkLatestTemurin:
    name: Temurin Check
    kind: temurin
    disablesourceinput: true
  checkLatestTemurinGA17LinuxArm64:
    name: Temurin Check
    kind: temurin
    disablesourceinput: true
    spec:
      releaseline: feature
      releasetype: ga
      featureversion: 17
      architecture: aarch64
      operatingsystem: linux
  checkFromSpecifiedVersion:
    name: Temurin Check
    kind: temurin
    disablesourceinput: true
    spec:
      specificversion: '{{ source "getLastGA17Version" }}'
  checkListOfPlatforms:
    name: Temurin Check
    kind: temurin
    disablesourceinput: true
    spec:
      specificversion: 17.0.13+11 # Known to provide all existing platform specified below
      platforms:
        - linux/x64
        - linux/aarch64
        - linux/s390x
        - alpine-linux/x64
        - windows/x64
  checkPlatformForSourceInput:
    name: Temurin Check
    kind: temurin
    sourceid: getLatestLtsVersion
    spec:
      platforms:
        - linux/x64
        - linux/aarch64