CI/CD パイプラインでの Adoptium API の使用

CI/CD プラットフォームに専用の Temurin セットアップタスク(GitHub Actions など)がない場合、Adoptium API を使用して Eclipse Temurin を直接ダウンロード、検証、インストールできます。このガイドでは、Azure DevOps、GitLab CI、Jenkins、CircleCI などを含むあらゆる CI 環境で動作するシェルスクリプトを使用した API の使用方法について説明します。

API の概要

Adoptium API は Temurin バイナリをダウンロードするための安定した URL を提供しています。最新の GA リリースをダウンロードするための一般的な URL パターンは次のとおりです:

https://api.adoptium.net/v3/binary/latest/{version}/ga/{os}/{arch}/{image_type}/hotspot/normal/eclipse

各パラメーター:

  • {version} — Java メジャーバージョン(例:811172125

  • {os} — オペレーティングシステム:linuxwindowsmacalpine-linuxaixsolaris

  • {arch} — アーキテクチャ:x64aarch64armppc64les390xriscv64

  • {image_type}jdk または jre

Note

すべての組み合わせが利用可能なわけではありません。指定した組み合わせのビルドが存在しない場合、API は HTTP 404 を返します。

利用可能なバージョンの確認

現在の LTS を含む利用可能なバージョンを確認できます:

# Get the most recent LTS version
curl -s https://api.adoptium.net/v3/info/available_releases | jq '.most_recent_lts'

# List all available LTS releases
curl -s https://api.adoptium.net/v3/info/available_releases | jq '.available_lts_releases'

バイナリのダウンロード

Linux / macOS

#!/bin/bash
set -euo pipefail

JAVA_VERSION="25"
OS="linux"
ARCH="x64"
IMAGE_TYPE="jdk"

API_URL="https://api.adoptium.net/v3/binary/latest/${JAVA_VERSION}/ga/${OS}/${ARCH}/${IMAGE_TYPE}/hotspot/normal/eclipse"

# Download the binary (follows redirects)
FETCH_URL=$(curl -s -w %{redirect_url} "${API_URL}")
FILENAME=$(curl -OLs -w %{filename_effective} "${FETCH_URL}")

echo "Downloaded ${FILENAME}"

Windows(PowerShell)

$JavaVersion = "25"
$ApiUrl = "https://api.adoptium.net/v3/binary/latest/$JavaVersion/ga/windows/x64/jdk/hotspot/normal/eclipse"

$Response = Invoke-WebRequest -Uri $ApiUrl -MaximumRedirection 0 -ErrorAction SilentlyContinue
$DownloadUrl = $Response.Headers.Location
$FileName = [System.IO.Path]::GetFileName($DownloadUrl)

Invoke-WebRequest -Uri $DownloadUrl -OutFile $FileName
Write-Host "Downloaded $FileName"

ダウンロードの検証

Eclipse Temurin リリースにはすべてのバイナリとともに SHA-256 チェックサムと GPG 署名が含まれています。Adoptium プロジェクトは、整合性と信頼性を確保するために CI/CD パイプラインでのダウンロード検証を強くお勧めします。

SHA-256 チェックサム検証

チェックサムファイルは、バイナリと同じ URL に .sha256.txt を追加したアドレスで利用可能です:

# Download and verify the checksum in one step
curl -Ls "${FETCH_URL}.sha256.txt" | sha256sum -c --status
echo "Checksum verified successfully"

Windows の PowerShell の場合:

# Download expected checksum
$ExpectedHash = (Invoke-WebRequest -Uri "$DownloadUrl.sha256.txt").Content.Split(" ")[0]

# Compute actual hash
$ActualHash = (Get-FileHash $FileName -Algorithm SHA256).Hash

if ($ExpectedHash -ne $ActualHash) {
    Write-Error "Checksum verification failed!"
    exit 1
}
Write-Host "Checksum verified successfully"

GPG 署名の検証

Temurin リリースは Adoptium GPG キーで署名されています。署名ファイルは、バイナリ URL に .sig を追加したアドレスで利用可能です:

# Import the Adoptium GPG public key
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --import

# Download the signature file
curl -OLs "${FETCH_URL}.sig"

# Verify the signature
gpg --verify "${FILENAME}.sig" "${FILENAME}"

CI スクリプトの完全な例

Eclipse Temurin をダウンロード、検証、インストールする任意の CI/CD パイプラインで使用できる完全なスクリプトを以下に示します:

#!/bin/bash
set -euo pipefail

# Configuration
JAVA_VERSION="${JAVA_VERSION:-25}"
OS="${OS:-linux}"
ARCH="${ARCH:-x64}"
IMAGE_TYPE="${IMAGE_TYPE:-jdk}"

API_URL="https://api.adoptium.net/v3/binary/latest/${JAVA_VERSION}/ga/${OS}/${ARCH}/${IMAGE_TYPE}/hotspot/normal/eclipse"

echo "Downloading Eclipse Temurin ${JAVA_VERSION} (${OS}/${ARCH})..."

# Download the binary
FETCH_URL=$(curl -s -w %{redirect_url} "${API_URL}")
FILENAME=$(curl -OLs -w %{filename_effective} "${FETCH_URL}")

# Verify SHA-256 checksum
echo "Verifying checksum..."
curl -Ls "${FETCH_URL}.sha256.txt" | sha256sum -c --status
echo "Checksum OK"

# Extract and configure
INSTALL_DIR="/opt/java/${JAVA_VERSION}"
mkdir -p "${INSTALL_DIR}"
tar xzf "${FILENAME}" -C "${INSTALL_DIR}" --strip-components=1

# Set environment variables
export JAVA_HOME="${INSTALL_DIR}"
export PATH="${JAVA_HOME}/bin:${PATH}"

echo "Eclipse Temurin ${JAVA_VERSION} installed to ${JAVA_HOME}"
java -version

プラットフォーム別の例

Azure DevOps

steps:
  - script: |
      JAVA_VERSION="25"
      API_URL="https://api.adoptium.net/v3/binary/latest/${JAVA_VERSION}/ga/linux/x64/jdk/hotspot/normal/eclipse"
      FETCH_URL=$(curl -s -w %{redirect_url} "${API_URL}")
      FILENAME=$(curl -OLs -w %{filename_effective} "${FETCH_URL}")
      curl -Ls "${FETCH_URL}.sha256.txt" | sha256sum -c --status
      mkdir -p /opt/java && tar xzf "${FILENAME}" -C /opt/java --strip-components=1
      echo "##vso[task.setvariable variable=JAVA_HOME]/opt/java"
      echo "##vso[task.prependpath]/opt/java/bin"
    displayName: 'Install Eclipse Temurin 25'

GitLab CI

install-temurin:
  before_script:
    - |
      JAVA_VERSION="25"
      API_URL="https://api.adoptium.net/v3/binary/latest/${JAVA_VERSION}/ga/linux/x64/jdk/hotspot/normal/eclipse"
      FETCH_URL=$(curl -s -w %{redirect_url} "${API_URL}")
      FILENAME=$(curl -OLs -w %{filename_effective} "${FETCH_URL}")
      curl -Ls "${FETCH_URL}.sha256.txt" | sha256sum -c --status
      tar xzf "${FILENAME}" -C /opt --strip-components=1
      export JAVA_HOME=/opt
      export PATH="${JAVA_HOME}/bin:${PATH}"
      java -version

Jenkins(スクリプトパイプライン)

node {
    stage('Install Temurin') {
        sh '''
            JAVA_VERSION="25"
            API_URL="https://api.adoptium.net/v3/binary/latest/$JAVA_VERSION/ga/linux/x64/jdk/hotspot/normal/eclipse"
            FETCH_URL=$(curl -s -w %{redirect_url} "$API_URL")
            FILENAME=$(curl -OLs -w %{filename_effective} "$FETCH_URL")
            curl -Ls "$FETCH_URL.sha256.txt" | sha256sum -c --status
            tar xzf "$FILENAME" -C /opt --strip-components=1
        '''
        env.JAVA_HOME = '/opt'
        env.PATH = "${env.JAVA_HOME}/bin:${env.PATH}"
    }
}
edit icon

このドキュメントの改善にご協力ください!

すべてのAdoptiumドキュメントはオープンソースです。誤りや不明な点がありましたらお知らせください。

ドキュメント著者
gdams
Join our Slack channel to discuss and reach out to maintainers.Join Slack