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 specifies the CPU architecture (as defined by the Temurin API - https://api.adoptium.net/q/swagger-ui/#/Types) to filter the Temurin release to retrieve.

default: “x64”

Allowed values:

  • “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” (RiscV 64 Bits)
featureversioninteger

FeatureVersion specifies the Major Java version to filter the Temurin release to retrieve.

default: undefined

Allowed values: integer number (8, 11, 17, 21, etc.)

imagetypestring

ImageType specifies the type of artifact to filter the Temurin release to retrieve.

default: “jdk”

Allowed values:

  • “jdk”
  • “jre”
  • “testimage”
  • “debugimage”
  • “staticlibs”
  • “source
  • “sbom”
operatingsystemstring

OperatingSystem specifies the Operating System (as defined by the Temurin API - https://api.adoptium.net/q/swagger-ui/#/Types) to filter the Temurin release to retrieve.

default: “linux”

Allowed values:

  • “linux”
  • “windows”
  • “mac”
  • “solaris”
  • “aix”
  • “alpine-linux”
platformsarray

Platforms is only valid within conditions. It specifies a collection of platforms as a filter for Temurin releases. Each platform must be a combination of an Operating System and a CPU architecture separated by the slash (/) character.

default: empty list (e.g. no filtering per platform).

Allowed values: Any combination of Operating System and Architecture as defined by the Temurin API (https://api.adoptium.net/q/swagger-ui/#/Types):

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

Project specifies the project to filter the Temurin release to retrieve.

default: “jdk”

Allowed values:

  • “jdk” (default)
  • “valhalla”
  • “metropolis”
  • “jfr”
  • “shenandoah”
releaselinestring

ReleaseLine specifies the line of Temurin release to retrieve.

default: “lts”

Allowed values:

  • “lts”
  • “feature”
releasetypestring

ReleaseType specifies the type of Temurin release to retrieve.

default: “ga”

Allowed values:

  • “ga” (General Availability)
  • “ea” (Early Availability, e.g. nightly builds)
resultstring

Result specifies the type of value returned by the retrieved Temurin release.

default: “version”

Allowed values:

  • “version” (Version Name, e.g. the Temurin SCM release name)
  • “installer_url” (HTTP URL to the binary release/installer)
  • “checksum_url” (HTTP URL to the checksum file)
  • “signature_url” (HTTP URL to the signature file)
specificversionstring

SpecificVersion specifies the exact Temurin version to filter the Temurin release to retrieve. Ignores FeatureVersion when used.

default: undefined

Allowed values: string (can be a semantic version, a JDK version or a Temurin release name)

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