Skip to content

Use VS 2022 by default for all JDK versions + skip freetype patching #3937

Use VS 2022 by default for all JDK versions + skip freetype patching

Use VS 2022 by default for all JDK versions + skip freetype patching #3937

Workflow file for this run

# ********************************************************************************
# Copyright (c) 2020 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made
# available under the terms of the Apache Software License 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: Apache-2.0
# ********************************************************************************
---
name: Build
on:
pull_request:
branches: [master]
paths:
- "build-farm/**"
- "sbin/**"
- "**.sh"
- "!tooling/build_autotriage/**"
- ".github/workflows/build.yml"
- "security/**"
- "cyclonedx-lib/**"
# Cancel existing runs if user makes another push.
concurrency:
group: "${{ github.ref }}"
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
build_linux:
name: Linux
runs-on: ubuntu-latest
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: 'true'
container:
image: ${{ matrix.image }}
strategy:
fail-fast: false
matrix:
os: [linux]
version: [jdk8u, jdk11u, jdk17u, jdk]
variant: [temurin]
image: [adoptopenjdk/centos7_build_image]
include:
- os: alpine-linux
version: jdk8u
variant: temurin
image: adoptopenjdk/alpine3_build_image
- os: alpine-linux
version: jdk11u
variant: temurin
image: adoptopenjdk/alpine3_build_image
- os: alpine-linux
version: jdk17u
variant: temurin
image: adoptopenjdk/alpine3_build_image
- os: alpine-linux
version: jdk
variant: temurin
image: adoptopenjdk/alpine3_build_image
- os: linux
version: jdk11u
variant: dragonwell
image: adoptopenjdk/centos7_build_image
- os: linux
version: jdk8u
vm: dragonwell
image: adoptopenjdk/centos7_build_image
- os: linux
version: jdk11u
variant: fast_startup
image: adoptopenjdk/centos7_build_image
- os: linux
version: jdk11u
variant: bisheng
image: adoptopenjdk/centos7_build_image
steps:
# pinned at v3 to as Node.js 20.x is not supported on Centos 7
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- name: Build Linux
run: ./build-farm/make-adopt-build-farm.sh
env:
JAVA_TO_BUILD: ${{ matrix.version }}
ARCHITECTURE: x64
VARIANT: ${{ matrix.variant }}
TARGET_OS: ${{ matrix.os }}
FILENAME: OpenJDK.tar.gz
# Don't set the OS as we use both linux and alpine-linux
PLATFORM_CONFIG_LOCATION: adoptium/temurin-build/master/build-farm/platform-specific-configurations
BUILD_ARGS: --create-sbom
CONFIGURE_ARGS: --with-native-debug-symbols=none
# pinned at v3 to as Node.js 20.x is not supported on Centos 7
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
name: Collect and Archive Artifacts
with:
name: ${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}
path: workspace/target/*
- name: Unpack jdk
run: |
mkdir -p "${HOME}/JDK"
tar -xf "${GITHUB_WORKSPACE}/workspace/target/OpenJDK.tar.gz" -C "${HOME}/JDK"
- name: Set root of jdk image dir
run: |
imageroot=$(find "${HOME}/JDK" -name release -type f)
echo "TEST_JDK_HOME=$(dirname "${imageroot}")" >> "$GITHUB_ENV"
- name: Smoke test
uses: adoptium/run-aqa@6bacb4e732ad546eda1b09665b9067cdc87651f4 # v2
with:
build_list: 'functional/buildAndPackage'
target: '_extended.functional'
vendor_testRepos: "${{ github.event.pull_request.head.repo.html_url }}.git"
vendor_testBranches: "${{ github.head_ref }}"
vendor_testDirs: "/test/functional"
# pinned at v3 to as Node.js 20.x is not supported on Centos 7
- uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
name: Collect and Archive SmokeTest Results
if: failure()
with:
name: "${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}_test_output"
path: ./**/output_*/
build_macos:
name: macOS
runs-on: ${{ matrix.version.distro }}
strategy:
fail-fast: false
matrix:
os: [macOS]
version: [
{ name: jdk11u, distro: macos-14 },
{ name: jdk17u, distro: macos-14 }
]
variant: [temurin]
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
# https://github.com/actions/runner-images/issues/6817
- name: (Mac) Workaround for homebrew
shell: bash
if: runner.os == 'macOS'
run: |
rm /usr/local/bin/2to3 || true
rm /usr/local/bin/2to3-3.11 || true
rm /usr/local/bin/2to3-3.12 || true
rm /usr/local/bin/idle3 || true
rm /usr/local/bin/idle3.11 || true
rm /usr/local/bin/idle3.12 || true
rm /usr/local/bin/pydoc3 || true
rm /usr/local/bin/pydoc3.11 || true
rm /usr/local/bin/pydoc3.12 || true
rm /usr/local/bin/python3 || true
rm /usr/local/bin/python3.11 || true
rm /usr/local/bin/python3.12 || true
rm /usr/local/bin/python3-config || true
rm /usr/local/bin/python3.11-config || true
rm /usr/local/bin/python3.12-config || true
- name: Install Dependencies
run: |
brew install automake bash binutils freetype gnu-sed nasm
- name: Select correct Xcode (JDK11+)
run: |
rm -rf /Applications/Xcode.app
ln -s /Applications/Xcode_15.2.app /Applications/Xcode.app
- name: Build macOS
run: |
export JAVA_HOME=$JAVA_HOME_11_X64
# jdk11u+ uses two part exploded & assemble build
export BUILD_ARGS="--make-exploded-image --create-sbom"
./build-farm/make-adopt-build-farm.sh
export BUILD_ARGS="--assemble-exploded-image --create-sbom"
./build-farm/make-adopt-build-farm.sh
env:
JAVA_TO_BUILD: ${{ matrix.version.name }}
ARCHITECTURE: x64
VARIANT: ${{ matrix.variant }}
TARGET_OS: mac
FILENAME: OpenJDK.tar.gz
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
name: Collect and Archive Artifacts
with:
name: ${{matrix.version.name}}-${{matrix.os}}-${{matrix.variant}}
path: workspace/target/*
- name: Unpack jdk
run: |
mkdir -p "${HOME}/JDK"
tar -xf "${GITHUB_WORKSPACE}/workspace/target/OpenJDK.tar.gz" -C "${HOME}/JDK"
- name: Set root of jdk image dir
run: |
imageroot=$(find "${HOME}/JDK" -name release -type f)
echo "TEST_JDK_HOME=$(dirname "${imageroot}")" >> "$GITHUB_ENV"
- name: Smoke test
uses: adoptium/run-aqa@6bacb4e732ad546eda1b09665b9067cdc87651f4 # v2
with:
build_list: 'functional/buildAndPackage'
target: '_extended.functional'
vendor_testRepos: "${{ github.event.pull_request.head.repo.html_url }}.git"
vendor_testBranches: "${{ github.head_ref }}"
vendor_testDirs: "/test/functional"
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
name: Collect and Archive SmokeTest Results
if: failure()
with:
name: "${{matrix.version.name}}-${{matrix.os}}-${{matrix.variant}}_test_output"
path: ./**/output_*/
build_windows:
name: Windows
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2022]
version: [jdk8u, jdk11u, jdk17u, jdk]
variant: [temurin]
env:
VS2022_URL: "https://download.visualstudio.microsoft.com/download/pr/1d66edfe-3c83-476b-bf05-e8901c62ba7f/bac71effb5a23d7cd1a81e5f628a0c8dcb7e8a07e0aa7077c853ed84a862dceb/vs_BuildTools.exe"
steps:
- name: Restore cygwin packages from cache
id: cygwin
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: C:\cygwin64
key: cygwin-packages-${{ runner.os }}-v1
- name: Install Cygwin and packages
uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401
with:
install-dir: C:\cygwin64
packages: >-
autoconf,
automake,
bsdtar,
cpio,
curl,
gcc-core,
git,
gnupg,
grep,
libtool,
make,
mingw64-x86_64-gcc-core,
perl,
rsync,
unzip,
wget,
zip
- uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018 # v4.2.2
id: setup-java7
with:
distribution: 'zulu'
java-version: 7
if: matrix.version == 'jdk8u'
- uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018 # v4.2.2
id: setup-java11
with:
distribution: 'temurin'
java-version: 11
- name: Restore Visual Studio 2022 from cache
id: vs2022
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ~/vs2022.exe
key: vs2022
- name: Uninstall WinSDKs
run: >
Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList
'modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise"
--remove Microsoft.VisualStudio.Component.Windows10SDK.18362
--remove Microsoft.VisualStudio.Component.Windows10SDK.19041
--remove Microsoft.VisualStudio.Component.Windows10SDK.20348
--remove Microsoft.VisualStudio.Component.Windows10SDK.22000
--remove Microsoft.VisualStudio.Component.Windows10SDK.22621
--quiet'
- name: Uninstall github runner OS image VS2022 Enterprise
run: >
Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList
'uninstall --quiet --norestart --productId Microsoft.VisualStudio.Product.Enterprise --channelId VisualStudio.17.Release'
- name: Download Visual Studio 2022
run: |
curl -L "$env:VS2022_URL" -o "$HOME/vs2022.exe"
if: steps.vs2022.outputs.cache-hit != 'true'
- name: Verify Download Of Visual Studio 2022
shell: powershell
run: |
$expected_checksum="bac71effb5a23d7cd1a81e5f628a0c8dcb7e8a07e0aa7077c853ed84a862dceb"
$actual_checksum=(Get-FileHash -Algorithm SHA256 -Path $HOME/vs2022.exe | Select-Object -ExpandProperty Hash)
echo "Expect : $expected_checksum"
echo "Actual : $actual_checksum"
if ($expected_checksum -ne $actual_checksum) {
Write-Output "Error - Checksum Verification Failed - Exiting"
exit 1
}
if: steps.vs2022.outputs.cache-hit != 'true'
- name: Install Visual Studio 2022
run: >
Start-Process -FilePath "$HOME\vs2022.exe" -Wait -NoNewWindow -ArgumentList
'--wait --productId Microsoft.VisualStudio.Product.BuildTools --channelId VisualStudio.17.Release
--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64
--add Microsoft.VisualStudio.Workload.NativeDesktop
--includeRecommended --includeOptional --quiet --norestart'
- name: DEBUG
shell: bash
run: ls -l '/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2022'
- name: DEBUG2
shell: bash
run: ls -l '/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools'
- name: DEBUG3
shell: bash
run: ls -l '/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/../../BuildTools/vc/auxiliary/build/vcvarsx86_amd64.bat'
- name: Install Git
run: |
Invoke-WebRequest 'https://github.com/git-for-windows/git/releases/download/v2.14.3.windows.1/Git-2.14.3-64-bit.exe' -OutFile 'C:\temp\git.exe'
Start-Process -Wait -FilePath 'C:\temp\git.exe' -ArgumentList '/SILENT /ALLOWDOWNGRADE=1** /COMPONENTS="icons,ext\reg\shellhere,assoc,assoc_sh"'
- name: Set PATH
run: (printf "C:\cygwin64\bin;C:\Program Files\Git\bin;") | Out-File -FilePath "$env:GITHUB_PATH" -Encoding utf8 -Append
- name: Cygwin git configuration
shell: bash
run: mkdir -p "$HOME" && git config --system core.autocrlf false && git config --global --add safe.directory '*'
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
set-safe-directory: false
- name: Setup 8dot3name
run: fsutil behavior set disable8dot3 0
- name: Set JAVA_HOME
run: echo "JAVA_HOME=$(cygpath "${{ steps.setup-java11.outputs.path }}")" | Out-File -FilePath "$env:GITHUB_ENV" -Encoding utf8 -Append
- name: Set JDK7_BOOT_DIR
run: echo "JDK7_BOOT_DIR=$(cygpath "${{ steps.setup-java7.outputs.path }}")" | Out-File -FilePath "$env:GITHUB_ENV" -Encoding utf8 -Append
if: matrix.version == 'jdk8u'
- name: Hold ANT_HOME value (from GH) to ANT_HOME2
run: echo "ANT_HOME_ORIGIN=${env:ANT_HOME}" | Out-File -FilePath "$env:GITHUB_ENV" -Encoding utf8 -Append
- name: Export ANT to PATH(GITHUB_ENV)
run: echo "ANT_HOME=$(cygpath "${env:ANT_HOME}")" | Out-File -FilePath "$env:GITHUB_ENV" -Encoding utf8 -Append
- name: Append ANT_HOME to PATH
run: |
"${env:ANT_HOME}/bin" >> ${env:GITHUB_PATH}
shell: pwsh
- name: Build Windows
run: |
bash build-farm/make-adopt-build-farm.sh
shell: cmd
env:
JAVA_TO_BUILD: ${{ matrix.version }}
ARCHITECTURE: x64
VARIANT: ${{ matrix.variant }}
TARGET_OS: windows
FILENAME: OpenJDK.zip
BUILD_ARGS: --create-sbom
CONFIGURE_ARGS: --with-tools-dir='/cygdrive/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC'
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
name: Collect and Archive Artifacts
with:
name: ${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}
path: workspace/target/*
- name: Restore build artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: ${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}
path: ~/${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}
- name: Unpack jdk
run: |
unzip "${HOME}/${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}/OpenJDK.zip" -d "${HOME}/${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}"
- name: Set root of jdk image dir
shell: pwsh
run: |
$imageroot=$(find "${HOME}/${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}" -name release -type f)
echo "TEST_JDK_HOME=$(dirname "${imageroot}")" | Out-File -FilePath "$env:GITHUB_ENV" -Encoding utf8 -Append
- name: Reset ANT_HOME from ANT_HOME_ORIGIN for smoke test
run: echo "ANT_HOME=${env:ANT_HOME_ORIGIN}" | Out-File -FilePath "$env:GITHUB_ENV" -Encoding utf8 -Append
- name: Smoke test
uses: adoptium/run-aqa@6bacb4e732ad546eda1b09665b9067cdc87651f4 # v2
with:
build_list: 'functional/buildAndPackage'
target: '_extended.functional'
vendor_testRepos: "${{ github.event.pull_request.head.repo.html_url }}.git"
vendor_testBranches: "${{ github.head_ref }}"
vendor_testDirs: "/test/functional"
- uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
name: Collect and Archive SmokeTest Results
if: failure()
with:
name: "${{matrix.version}}-${{matrix.os}}-${{matrix.variant}}_test_output"
path: ./**/output_*/