2020-09-28 09:31:51 +00:00
|
|
|
|
name: Pre-submit tests
|
|
|
|
|
|
|
|
|
|
on:
|
|
|
|
|
push:
|
|
|
|
|
branches-ignore:
|
|
|
|
|
- master
|
|
|
|
|
workflow_dispatch:
|
|
|
|
|
inputs:
|
|
|
|
|
platforms:
|
|
|
|
|
description: "Platform(s) to execute on"
|
|
|
|
|
required: true
|
2020-11-13 12:36:51 +00:00
|
|
|
|
default: "Linux aarch64, Linux arm, Linux ppc64le, Linux s390x, Linux x64, Linux x86, Windows x64, macOS x64"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
prerequisites:
|
|
|
|
|
name: Prerequisites
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
outputs:
|
|
|
|
|
should_run: ${{ steps.check_submit.outputs.should_run }}
|
2020-10-06 13:39:57 +00:00
|
|
|
|
bundle_id: ${{ steps.check_bundle_id.outputs.bundle_id }}
|
2020-11-13 12:36:51 +00:00
|
|
|
|
platform_linux_aarch64: ${{ steps.check_platforms.outputs.platform_linux_aarch64 }}
|
|
|
|
|
platform_linux_arm: ${{ steps.check_platforms.outputs.platform_linux_arm }}
|
|
|
|
|
platform_linux_ppc64le: ${{ steps.check_platforms.outputs.platform_linux_ppc64le }}
|
|
|
|
|
platform_linux_s390x: ${{ steps.check_platforms.outputs.platform_linux_s390x }}
|
2020-10-27 13:57:07 +00:00
|
|
|
|
platform_linux_x86: ${{ steps.check_platforms.outputs.platform_linux_x86 }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
platform_linux_x64: ${{ steps.check_platforms.outputs.platform_linux_x64 }}
|
|
|
|
|
platform_windows_x64: ${{ steps.check_platforms.outputs.platform_windows_x64 }}
|
|
|
|
|
platform_macos_x64: ${{ steps.check_platforms.outputs.platform_macos_x64 }}
|
|
|
|
|
dependencies: ${{ steps.check_deps.outputs.dependencies }}
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Check if submit tests should actually run depending on secrets and manual triggering
|
|
|
|
|
id: check_submit
|
|
|
|
|
run: echo "::set-output name=should_run::${{ github.event.inputs.platforms != '' || (!secrets.JDK_SUBMIT_FILTER || startsWith(github.ref, 'refs/heads/submit/')) }}"
|
|
|
|
|
|
|
|
|
|
- name: Check which platforms should be included
|
|
|
|
|
id: check_platforms
|
|
|
|
|
run: |
|
2020-11-13 12:36:51 +00:00
|
|
|
|
echo "::set-output name=platform_linux_aarch64::${{ contains(github.event.inputs.platforms, 'linux aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux aarch64'))) }}"
|
|
|
|
|
echo "::set-output name=platform_linux_arm::${{ contains(github.event.inputs.platforms, 'linux arm') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux arm'))) }}"
|
|
|
|
|
echo "::set-output name=platform_linux_ppc64le::${{ contains(github.event.inputs.platforms, 'linux ppc64le') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux ppc64le'))) }}"
|
|
|
|
|
echo "::set-output name=platform_linux_s390x::${{ contains(github.event.inputs.platforms, 'linux s390x') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux s390x'))) }}"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
echo "::set-output name=platform_linux_x64::${{ contains(github.event.inputs.platforms, 'linux x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x64'))) }}"
|
2020-10-27 13:57:07 +00:00
|
|
|
|
echo "::set-output name=platform_linux_x86::${{ contains(github.event.inputs.platforms, 'linux x86') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x86'))) }}"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
echo "::set-output name=platform_windows_x64::${{ contains(github.event.inputs.platforms, 'windows x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows x64'))) }}"
|
|
|
|
|
echo "::set-output name=platform_macos_x64::${{ contains(github.event.inputs.platforms, 'macos x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos x64'))) }}"
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false'
|
|
|
|
|
|
|
|
|
|
- name: Determine unique bundle identifier
|
2020-10-26 10:18:36 +00:00
|
|
|
|
id: check_bundle_id
|
2020-10-06 13:39:57 +00:00
|
|
|
|
run: echo "::set-output name=bundle_id::${GITHUB_ACTOR}_${GITHUB_SHA:0:8}"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false'
|
|
|
|
|
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false'
|
|
|
|
|
|
|
|
|
|
- name: Determine versions and locations to be used for dependencies
|
|
|
|
|
id: check_deps
|
|
|
|
|
run: "echo ::set-output name=dependencies::`cat make/autoconf/version-numbers make/conf/test-dependencies | sed -e '1i {' -e 's/#.*//g' -e 's/\"//g' -e 's/\\(.*\\)=\\(.*\\)/\"\\1\": \"\\2\",/g' -e '$s/,\\s\\{0,\\}$/\\}/'`"
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false'
|
|
|
|
|
|
|
|
|
|
- name: Print extracted dependencies to the log
|
|
|
|
|
run: "echo '${{ steps.check_deps.outputs.dependencies }}'"
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false'
|
|
|
|
|
|
|
|
|
|
- name: Determine the jtreg ref to checkout
|
2020-10-06 13:39:57 +00:00
|
|
|
|
run: "echo JTREG_REF=jtreg${{ fromJson(steps.check_deps.outputs.dependencies).JTREG_VERSION }}-${{ fromJson(steps.check_deps.outputs.dependencies).JTREG_BUILD }} >> $GITHUB_ENV"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false'
|
|
|
|
|
|
|
|
|
|
- name: Check if a jtreg image is present in the cache
|
|
|
|
|
id: jtreg
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
key: jtreg-${{ env.JTREG_REF }}-v1
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false'
|
|
|
|
|
|
|
|
|
|
- name: Checkout the jtreg source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
repository: "openjdk/jtreg"
|
|
|
|
|
ref: ${{ env.JTREG_REF }}
|
|
|
|
|
path: jtreg
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Build jtreg
|
2020-11-20 08:04:08 +00:00
|
|
|
|
run: sh make/build-all.sh ${JAVA_HOME_8_X64}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
working-directory: jtreg
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Move jtreg image to destination folder
|
|
|
|
|
run: mv build/images/jtreg ~/
|
|
|
|
|
working-directory: jtreg
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Store jtreg for use by later steps
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ steps.check_bundle_id.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
if: steps.check_submit.outputs.should_run != 'false'
|
|
|
|
|
|
|
|
|
|
linux_x64_build:
|
|
|
|
|
name: Linux x64
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
needs: prerequisites
|
|
|
|
|
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_x64 != 'false'
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
flavor:
|
|
|
|
|
- build release
|
|
|
|
|
- build debug
|
|
|
|
|
- build hotspot no-pch
|
2020-10-08 07:25:42 +00:00
|
|
|
|
- build hotspot zero
|
|
|
|
|
- build hotspot minimal
|
2020-11-16 19:30:43 +00:00
|
|
|
|
- build hotspot optimized
|
2020-09-28 09:31:51 +00:00
|
|
|
|
include:
|
|
|
|
|
- flavor: build debug
|
|
|
|
|
flags: --enable-debug
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- flavor: build hotspot no-pch
|
2020-10-09 09:42:39 +00:00
|
|
|
|
flags: --enable-debug --disable-precompiled-headers
|
2020-09-28 09:31:51 +00:00
|
|
|
|
build-target: hotspot
|
2020-10-08 07:25:42 +00:00
|
|
|
|
- flavor: build hotspot zero
|
|
|
|
|
flags: --enable-debug --disable-precompiled-headers --with-jvm-variants=zero
|
|
|
|
|
build-target: hotspot
|
|
|
|
|
- flavor: build hotspot minimal
|
|
|
|
|
flags: --enable-debug --disable-precompiled-headers --with-jvm-variants=minimal
|
|
|
|
|
build-target: hotspot
|
2020-11-16 19:30:43 +00:00
|
|
|
|
- flavor: build hotspot optimized
|
|
|
|
|
flags: --with-debug-level=optimized --disable-precompiled-headers
|
|
|
|
|
build-target: hotspot
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: jtreg_restore
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jtreg/
|
2020-10-02 13:12:14 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact (retry)
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
if: steps.jtreg_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Checkout gtest sources
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
repository: "google/googletest"
|
|
|
|
|
ref: "release-${{ fromJson(needs.prerequisites.outputs.dependencies).GTEST_VERSION }}"
|
|
|
|
|
path: gtest
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies
|
2020-11-20 08:04:08 +00:00
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get install gcc-10=10.2.0-5ubuntu1~20.04 g++-10=10.2.0-5ubuntu1~20.04 libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
|
|
|
|
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
|
run: >
|
|
|
|
|
bash configure
|
|
|
|
|
--with-conf-name=linux-x64
|
|
|
|
|
${{ matrix.flags }}
|
|
|
|
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
|
|
|
|
--with-version-build=0
|
|
|
|
|
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
|
|
|
|
--with-jtreg=${HOME}/jtreg
|
|
|
|
|
--with-gtest=${GITHUB_WORKSPACE}/gtest
|
|
|
|
|
--with-default-make-target="product-bundles test-bundles"
|
|
|
|
|
--with-zlib=system
|
|
|
|
|
--enable-jtreg-failure-handler
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
|
run: make CONF_NAME=linux-x64 ${{ matrix.build-target }}
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Persist test bundles
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-linux-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: |
|
|
|
|
|
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}.tar.gz
|
|
|
|
|
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
|
|
|
|
if: matrix.build-target == false
|
|
|
|
|
|
|
|
|
|
linux_x64_test:
|
|
|
|
|
name: Linux x64
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
needs:
|
|
|
|
|
- prerequisites
|
|
|
|
|
- linux_x64_build
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
test:
|
|
|
|
|
- jdk/tier1 part 1
|
|
|
|
|
- jdk/tier1 part 2
|
|
|
|
|
- jdk/tier1 part 3
|
|
|
|
|
- langtools/tier1
|
|
|
|
|
- hs/tier1 common
|
|
|
|
|
- hs/tier1 compiler
|
|
|
|
|
- hs/tier1 gc
|
|
|
|
|
- hs/tier1 runtime
|
|
|
|
|
- hs/tier1 serviceability
|
|
|
|
|
include:
|
|
|
|
|
- test: jdk/tier1 part 1
|
|
|
|
|
suites: test/jdk/:tier1_part1
|
|
|
|
|
- test: jdk/tier1 part 2
|
|
|
|
|
suites: test/jdk/:tier1_part2
|
|
|
|
|
- test: jdk/tier1 part 3
|
|
|
|
|
suites: test/jdk/:tier1_part3
|
|
|
|
|
- test: langtools/tier1
|
|
|
|
|
suites: test/langtools/:tier1
|
|
|
|
|
- test: hs/tier1 common
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_common
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 compiler
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_compiler
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 gc
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_gc
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 runtime
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_runtime
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 serviceability
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_serviceability
|
|
|
|
|
artifact: -debug
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: jtreg_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact (retry)
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jtreg/
|
2020-10-02 13:12:14 +00:00
|
|
|
|
if: steps.jtreg_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Restore build artifacts
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: build_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-linux-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jdk-linux-x64${{ matrix.artifact }}
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore build artifacts (retry)
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-linux-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jdk-linux-x64${{ matrix.artifact }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
if: steps.build_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Unpack jdk
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}"
|
|
|
|
|
tar -xf "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}"
|
|
|
|
|
|
|
|
|
|
- name: Unpack tests
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}"
|
|
|
|
|
tar -xf "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}"
|
|
|
|
|
|
|
|
|
|
- name: Find root of jdk image dir
|
|
|
|
|
run: |
|
|
|
|
|
imageroot=`find ${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }} -name release -type f`
|
2020-10-06 13:39:57 +00:00
|
|
|
|
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Run tests
|
|
|
|
|
run: >
|
|
|
|
|
JDK_IMAGE_DIR=${{ env.imageroot }}
|
|
|
|
|
TEST_IMAGE_DIR=${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}
|
|
|
|
|
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
|
|
|
|
JT_HOME=${HOME}/jtreg
|
|
|
|
|
make test-prebuilt
|
|
|
|
|
CONF_NAME=run-test-prebuilt
|
|
|
|
|
LOG_CMDLINES=true
|
|
|
|
|
JTREG_VERBOSE=fail,error,time
|
|
|
|
|
TEST="${{ matrix.suites }}"
|
|
|
|
|
TEST_OPTS_JAVA_OPTIONS=
|
|
|
|
|
JTREG_KEYWORDS="!headful"
|
2020-10-02 13:12:14 +00:00
|
|
|
|
JTREG="JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash"
|
|
|
|
|
|
|
|
|
|
- name: Check that all tests executed successfully
|
|
|
|
|
if: always()
|
|
|
|
|
run: >
|
|
|
|
|
if ! grep --include=test-summary.txt -lqr build/*/test-results -e "TEST SUCCESS" ; then
|
|
|
|
|
cat build/*/test-results/*/text/newfailures.txt ;
|
|
|
|
|
exit 1 ;
|
|
|
|
|
fi
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Create suitable test log artifact name
|
|
|
|
|
if: always()
|
2020-10-06 13:39:57 +00:00
|
|
|
|
run: echo "logsuffix=`echo ${{ matrix.test }} | sed -e 's!/!_!'g -e 's! !_!'g`" >> $GITHUB_ENV
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
2020-10-26 11:20:38 +00:00
|
|
|
|
- name: Package test results
|
|
|
|
|
if: always()
|
|
|
|
|
working-directory: build/run-test-prebuilt/test-results/
|
|
|
|
|
run: >
|
|
|
|
|
zip -r9
|
|
|
|
|
"$HOME/linux-x64${{ matrix.artifact }}_testresults_${{ env.logsuffix }}.zip"
|
|
|
|
|
.
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Package test support
|
|
|
|
|
if: always()
|
|
|
|
|
working-directory: build/run-test-prebuilt/test-support/
|
|
|
|
|
run: >
|
|
|
|
|
zip -r9
|
|
|
|
|
"$HOME/linux-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip"
|
|
|
|
|
.
|
|
|
|
|
-i *.jtr
|
2020-11-04 14:44:27 +00:00
|
|
|
|
-i */hs_err*.log
|
|
|
|
|
-i */replay*.log
|
2020-10-26 11:20:38 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Persist test results
|
|
|
|
|
if: always()
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/linux-x64${{ matrix.artifact }}_testresults_${{ env.logsuffix }}.zip
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Persist test outputs
|
2020-09-28 09:31:51 +00:00
|
|
|
|
if: always()
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
2020-10-26 11:20:38 +00:00
|
|
|
|
path: ~/linux-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip
|
2020-09-28 09:31:51 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
2020-11-13 12:36:51 +00:00
|
|
|
|
linux_aarch64_build:
|
|
|
|
|
name: Linux aarch64
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-11-13 12:36:51 +00:00
|
|
|
|
needs:
|
|
|
|
|
- prerequisites
|
|
|
|
|
- linux_x64_build
|
|
|
|
|
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_aarch64 != 'false'
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
flavor:
|
|
|
|
|
- build hotspot no-pch
|
|
|
|
|
include:
|
|
|
|
|
- flavor: build hotspot no-pch
|
|
|
|
|
flags: --enable-debug --disable-precompiled-headers
|
|
|
|
|
artifact: -debug
|
|
|
|
|
build-target: hotspot
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore build JDK
|
|
|
|
|
id: build_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jdk-linux-x64_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jdk-linux-x64
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Unpack jdk
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
|
|
|
|
tar -xf "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin.tar.gz" -C "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
|
|
|
|
|
|
|
|
|
- name: Find root of build JDK image dir
|
|
|
|
|
run: |
|
|
|
|
|
build_jdk_root=`find ${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin -name release -type f`
|
|
|
|
|
echo "build_jdk_root=`dirname ${build_jdk_root}`" >> $GITHUB_ENV
|
|
|
|
|
|
|
|
|
|
- name: Install cross-compilation host dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get update
|
|
|
|
|
sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
|
|
|
|
|
|
|
|
|
|
- name: Cache sysroot
|
|
|
|
|
id: cache-sysroot
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/sysroot-arm64/
|
|
|
|
|
key: sysroot-arm64-${{ hashFiles('jdk/.github/workflows/submit.yml') }}
|
|
|
|
|
|
|
|
|
|
- name: Install sysroot host dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get install debootstrap qemu-user-static
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Create sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo qemu-debootstrap
|
|
|
|
|
--arch=arm64
|
|
|
|
|
--verbose
|
|
|
|
|
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev
|
|
|
|
|
--resolve-deps
|
|
|
|
|
buster
|
|
|
|
|
~/sysroot-arm64
|
|
|
|
|
http://httpredir.debian.org/debian/
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Relativize symlinks in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo chroot ~/sysroot-arm64 symlinks -cr .
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Fix permissions in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo chown ${USER} -R ~/sysroot-arm64
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Remove special directories in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
rm -rf ~/sysroot-arm64/{dev,proc,run,sys}
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
|
env:
|
|
|
|
|
CC: aarch64-linux-gnu-gcc
|
|
|
|
|
CXX: aarch64-linux-gnu-g++
|
|
|
|
|
run: >
|
|
|
|
|
bash configure
|
|
|
|
|
${{ matrix.flags }}
|
|
|
|
|
--openjdk-target=aarch64-linux-gnu
|
|
|
|
|
--with-sysroot=${HOME}/sysroot-arm64/
|
|
|
|
|
--with-toolchain-path=${HOME}/sysroot-arm64/
|
|
|
|
|
--with-freetype-lib=${HOME}/sysroot-arm64/usr/lib/aarch64-linux-gnu/
|
|
|
|
|
--with-freetype-include=${HOME}/sysroot-arm64/usr/include/freetype2/
|
|
|
|
|
--x-libraries=${HOME}/sysroot-arm64/usr/lib/aarch64-linux-gnu/
|
|
|
|
|
--with-build-jdk=${{ env.build_jdk_root }}
|
|
|
|
|
--with-conf-name=linux-aarch64
|
|
|
|
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
|
|
|
|
--with-version-build=0
|
|
|
|
|
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
|
|
|
|
--with-default-make-target="product-bundles test-bundles"
|
|
|
|
|
--with-zlib=system
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
|
run: make CONF_NAME=linux-aarch64 ${{ matrix.build-target }}
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
linux_arm_build:
|
|
|
|
|
name: Linux arm
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-11-13 12:36:51 +00:00
|
|
|
|
needs:
|
|
|
|
|
- prerequisites
|
|
|
|
|
- linux_x64_build
|
|
|
|
|
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_arm != 'false'
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
flavor:
|
|
|
|
|
- build hotspot no-pch
|
|
|
|
|
include:
|
|
|
|
|
- flavor: build hotspot no-pch
|
|
|
|
|
flags: --enable-debug --disable-precompiled-headers
|
|
|
|
|
artifact: -debug
|
|
|
|
|
build-target: hotspot
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore build JDK
|
|
|
|
|
id: build_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jdk-linux-x64_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jdk-linux-x64
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Unpack jdk
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
|
|
|
|
tar -xf "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin.tar.gz" -C "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
|
|
|
|
|
|
|
|
|
- name: Find root of build JDK image dir
|
|
|
|
|
run: |
|
|
|
|
|
build_jdk_root=`find ${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin -name release -type f`
|
|
|
|
|
echo "build_jdk_root=`dirname ${build_jdk_root}`" >> $GITHUB_ENV
|
|
|
|
|
|
|
|
|
|
- name: Install cross-compilation host dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get update
|
|
|
|
|
sudo apt-get install g++-arm-linux-gnueabihf gcc-arm-linux-gnueabihf
|
|
|
|
|
|
|
|
|
|
- name: Cache sysroot
|
|
|
|
|
id: cache-sysroot
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/sysroot-armhf/
|
|
|
|
|
key: sysroot-armhf-${{ hashFiles('jdk/.github/workflows/submit.yml') }}
|
|
|
|
|
|
|
|
|
|
- name: Install sysroot host dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get install debootstrap qemu-user-static
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Create sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo qemu-debootstrap
|
|
|
|
|
--arch=armhf
|
|
|
|
|
--verbose
|
|
|
|
|
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev
|
|
|
|
|
--resolve-deps
|
|
|
|
|
buster
|
|
|
|
|
~/sysroot-armhf
|
|
|
|
|
http://httpredir.debian.org/debian/
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Relativize symlinks in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo chroot ~/sysroot-armhf symlinks -cr .
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Fix permissions in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo chown ${USER} -R ~/sysroot-armhf
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Remove special directories in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
rm -rf ~/sysroot-armhf/{dev,proc,run,sys}
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
|
env:
|
|
|
|
|
CC: arm-linux-gnueabihf-gcc
|
|
|
|
|
CXX: arm-linux-gnueabihf-g++
|
|
|
|
|
run: >
|
|
|
|
|
bash configure
|
|
|
|
|
${{ matrix.flags }}
|
|
|
|
|
--openjdk-target=arm-linux-gnueabihf
|
|
|
|
|
--with-sysroot=${HOME}/sysroot-armhf/
|
|
|
|
|
--with-toolchain-path=${HOME}/sysroot-armhf/
|
|
|
|
|
--with-freetype-lib=${HOME}/sysroot-armhf/usr/lib/arm-linux-gnueabihf/
|
|
|
|
|
--with-freetype-include=${HOME}/sysroot-armhf/usr/include/freetype2/
|
|
|
|
|
--x-libraries=${HOME}/sysroot-armhf/usr/lib/arm-linux-gnueabihf/
|
|
|
|
|
--with-build-jdk=${{ env.build_jdk_root }}
|
|
|
|
|
--with-conf-name=linux-arm
|
|
|
|
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
|
|
|
|
--with-version-build=0
|
|
|
|
|
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
|
|
|
|
--with-default-make-target="product-bundles test-bundles"
|
|
|
|
|
--with-zlib=system
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
|
run: make CONF_NAME=linux-arm ${{ matrix.build-target }}
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
linux_s390x_build:
|
|
|
|
|
name: Linux s390x
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-11-13 12:36:51 +00:00
|
|
|
|
needs:
|
|
|
|
|
- prerequisites
|
|
|
|
|
- linux_x64_build
|
|
|
|
|
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_s390x != 'false'
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
flavor:
|
|
|
|
|
- build hotspot no-pch
|
|
|
|
|
include:
|
|
|
|
|
- flavor: build hotspot no-pch
|
|
|
|
|
flags: --enable-debug --disable-precompiled-headers
|
|
|
|
|
artifact: -debug
|
|
|
|
|
build-target: hotspot
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore build JDK
|
|
|
|
|
id: build_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jdk-linux-x64_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jdk-linux-x64
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Unpack jdk
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
|
|
|
|
tar -xf "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin.tar.gz" -C "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
|
|
|
|
|
|
|
|
|
- name: Find root of build JDK image dir
|
|
|
|
|
run: |
|
|
|
|
|
build_jdk_root=`find ${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin -name release -type f`
|
|
|
|
|
echo "build_jdk_root=`dirname ${build_jdk_root}`" >> $GITHUB_ENV
|
|
|
|
|
|
|
|
|
|
- name: Install cross-compilation host dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get update
|
|
|
|
|
sudo apt-get install g++-s390x-linux-gnu gcc-s390x-linux-gnu
|
|
|
|
|
|
|
|
|
|
- name: Cache sysroot
|
|
|
|
|
id: cache-sysroot
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/sysroot-s390x/
|
|
|
|
|
key: sysroot-s390x-${{ hashFiles('jdk/.github/workflows/submit.yml') }}
|
|
|
|
|
|
|
|
|
|
- name: Install sysroot host dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get install debootstrap qemu-user-static
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Create sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo qemu-debootstrap
|
|
|
|
|
--arch=s390x
|
|
|
|
|
--verbose
|
|
|
|
|
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev
|
|
|
|
|
--resolve-deps
|
|
|
|
|
buster
|
|
|
|
|
~/sysroot-s390x
|
|
|
|
|
http://httpredir.debian.org/debian/
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Relativize symlinks in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo chroot ~/sysroot-s390x symlinks -cr .
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Fix permissions in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo chown ${USER} -R ~/sysroot-s390x
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Remove special directories in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
rm -rf ~/sysroot-s390x/{dev,proc,run,sys}
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
|
env:
|
|
|
|
|
CC: s390x-linux-gnu-gcc
|
|
|
|
|
CXX: s390x-linux-gnu-g++
|
|
|
|
|
run: >
|
|
|
|
|
bash configure
|
|
|
|
|
${{ matrix.flags }}
|
|
|
|
|
--openjdk-target=s390x-linux-gnu
|
|
|
|
|
--with-sysroot=${HOME}/sysroot-s390x/
|
|
|
|
|
--with-toolchain-path=${HOME}/sysroot-s390x/
|
|
|
|
|
--with-freetype-lib=${HOME}/sysroot-s390x/usr/lib/s390x-linux-gnu/
|
|
|
|
|
--with-freetype-include=${HOME}/sysroot-s390x/usr/include/freetype2/
|
|
|
|
|
--x-libraries=${HOME}/sysroot-s390x/usr/lib/s390x-linux-gnu/
|
|
|
|
|
--with-build-jdk=${{ env.build_jdk_root }}
|
|
|
|
|
--with-conf-name=linux-s390x
|
|
|
|
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
|
|
|
|
--with-version-build=0
|
|
|
|
|
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
|
|
|
|
--with-default-make-target="product-bundles test-bundles"
|
|
|
|
|
--with-zlib=system
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
|
run: make CONF_NAME=linux-s390x ${{ matrix.build-target }}
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
linux_ppc64le_build:
|
|
|
|
|
name: Linux ppc64le
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-11-13 12:36:51 +00:00
|
|
|
|
needs:
|
|
|
|
|
- prerequisites
|
|
|
|
|
- linux_x64_build
|
|
|
|
|
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_ppc64le != 'false'
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
flavor:
|
|
|
|
|
- build hotspot no-pch
|
|
|
|
|
include:
|
|
|
|
|
- flavor: build hotspot no-pch
|
|
|
|
|
flags: --enable-debug --disable-precompiled-headers
|
|
|
|
|
artifact: -debug
|
|
|
|
|
build-target: hotspot
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore build JDK
|
|
|
|
|
id: build_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jdk-linux-x64_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jdk-linux-x64
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Unpack jdk
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
|
|
|
|
tar -xf "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin.tar.gz" -C "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
|
|
|
|
|
|
|
|
|
- name: Find root of build JDK image dir
|
|
|
|
|
run: |
|
|
|
|
|
build_jdk_root=`find ${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin -name release -type f`
|
|
|
|
|
echo "build_jdk_root=`dirname ${build_jdk_root}`" >> $GITHUB_ENV
|
|
|
|
|
|
|
|
|
|
- name: Install cross-compilation host dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get update
|
|
|
|
|
sudo apt-get install g++-powerpc64le-linux-gnu gcc-powerpc64le-linux-gnu:
|
|
|
|
|
|
|
|
|
|
- name: Cache sysroot
|
|
|
|
|
id: cache-sysroot
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/sysroot-ppc64el/
|
|
|
|
|
key: sysroot-ppc64el-${{ hashFiles('jdk/.github/workflows/submit.yml') }}
|
|
|
|
|
|
|
|
|
|
- name: Install sysroot host dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get install debootstrap qemu-user-static
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Create sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo qemu-debootstrap
|
|
|
|
|
--arch=ppc64el
|
|
|
|
|
--verbose
|
|
|
|
|
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev
|
|
|
|
|
--resolve-deps
|
|
|
|
|
buster
|
|
|
|
|
~/sysroot-ppc64el
|
|
|
|
|
http://httpredir.debian.org/debian/
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Relativize symlinks in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo chroot ~/sysroot-ppc64el symlinks -cr .
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Fix permissions in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
sudo chown ${USER} -R ~/sysroot-ppc64el
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Remove special directories in sysroot
|
|
|
|
|
run: >
|
|
|
|
|
rm -rf ~/sysroot-ppc64el/{dev,proc,run,sys}
|
|
|
|
|
if: steps.cache-sysroot.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
|
env:
|
|
|
|
|
CC: powerpc64le-linux-gnu-gcc
|
|
|
|
|
CXX: powerpc64le-linux-gnu-g++
|
|
|
|
|
run: >
|
|
|
|
|
bash configure
|
|
|
|
|
${{ matrix.flags }}
|
|
|
|
|
--openjdk-target=powerpc64le-linux-gnu
|
|
|
|
|
--with-sysroot=${HOME}/sysroot-ppc64el/
|
|
|
|
|
--with-toolchain-path=${HOME}/sysroot-ppc64el/
|
|
|
|
|
--with-freetype-lib=${HOME}/sysroot-ppc64el/usr/lib/powerpc64le-linux-gnu/
|
|
|
|
|
--with-freetype-include=${HOME}/sysroot-ppc64el/usr/include/freetype2/
|
|
|
|
|
--x-libraries=${HOME}/sysroot-ppc64el/usr/lib/powerpc64le-linux-gnu/
|
|
|
|
|
--with-build-jdk=${{ env.build_jdk_root }}
|
|
|
|
|
--with-conf-name=linux-ppc64le
|
|
|
|
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
|
|
|
|
--with-version-build=0
|
|
|
|
|
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
|
|
|
|
--with-default-make-target="product-bundles test-bundles"
|
|
|
|
|
--with-zlib=system
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
|
run: make CONF_NAME=linux-ppc64le ${{ matrix.build-target }}
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
2020-10-27 13:57:07 +00:00
|
|
|
|
linux_x86_build:
|
|
|
|
|
name: Linux x86
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-10-20 06:55:36 +00:00
|
|
|
|
needs: prerequisites
|
2020-10-27 13:57:07 +00:00
|
|
|
|
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_x86 != 'false'
|
2020-10-20 06:55:36 +00:00
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
flavor:
|
2020-10-27 13:57:07 +00:00
|
|
|
|
- build release
|
2020-10-20 06:55:36 +00:00
|
|
|
|
- build debug
|
|
|
|
|
include:
|
|
|
|
|
- flavor: build debug
|
|
|
|
|
flags: --enable-debug
|
|
|
|
|
artifact: -debug
|
|
|
|
|
|
|
|
|
|
# Reduced 32-bit build uses the same boot JDK as 64-bit build
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact
|
|
|
|
|
id: jtreg_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact (retry)
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
if: steps.jtreg_restore.outcome == 'failure'
|
|
|
|
|
|
|
|
|
|
- name: Checkout gtest sources
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
repository: "google/googletest"
|
|
|
|
|
ref: "release-${{ fromJson(needs.prerequisites.outputs.dependencies).GTEST_VERSION }}"
|
|
|
|
|
path: gtest
|
|
|
|
|
|
|
|
|
|
# Roll in the multilib environment and its dependencies.
|
|
|
|
|
# Some multilib libraries do not have proper inter-dependencies, so we have to
|
|
|
|
|
# install their dependencies manually.
|
|
|
|
|
- name: Install dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo dpkg --add-architecture i386
|
|
|
|
|
sudo apt-get update
|
2020-11-20 08:04:08 +00:00
|
|
|
|
sudo apt-get install gcc-10-multilib g++-10-multilib libfreetype6-dev:i386 libxrandr-dev:i386 libxtst-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libcups2-dev:i386 libasound2-dev:i386
|
|
|
|
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
|
2020-10-20 06:55:36 +00:00
|
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
|
run: >
|
|
|
|
|
bash configure
|
2020-10-27 13:57:07 +00:00
|
|
|
|
--with-conf-name=linux-x86
|
2020-10-20 06:55:36 +00:00
|
|
|
|
--with-target-bits=32
|
|
|
|
|
${{ matrix.flags }}
|
|
|
|
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
|
|
|
|
--with-version-build=0
|
|
|
|
|
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
|
|
|
|
--with-jtreg=${HOME}/jtreg
|
|
|
|
|
--with-gtest=${GITHUB_WORKSPACE}/gtest
|
|
|
|
|
--with-default-make-target="product-bundles test-bundles"
|
|
|
|
|
--with-zlib=system
|
|
|
|
|
--enable-jtreg-failure-handler
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Build
|
2020-10-27 13:57:07 +00:00
|
|
|
|
run: make CONF_NAME=linux-x86 ${{ matrix.build-target }}
|
2020-10-20 06:55:36 +00:00
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
2020-10-27 13:57:07 +00:00
|
|
|
|
- name: Persist test bundles
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jdk-linux-x86${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: |
|
|
|
|
|
jdk/build/linux-x86/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}.tar.gz
|
|
|
|
|
jdk/build/linux-x86/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}.tar.gz
|
|
|
|
|
if: matrix.build-target == false
|
|
|
|
|
|
|
|
|
|
linux_x86_test:
|
|
|
|
|
name: Linux x86
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-10-27 13:57:07 +00:00
|
|
|
|
needs:
|
|
|
|
|
- prerequisites
|
|
|
|
|
- linux_x86_build
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
test:
|
|
|
|
|
- jdk/tier1 part 1
|
|
|
|
|
- jdk/tier1 part 2
|
|
|
|
|
- jdk/tier1 part 3
|
|
|
|
|
- langtools/tier1
|
|
|
|
|
- hs/tier1 common
|
|
|
|
|
- hs/tier1 compiler
|
|
|
|
|
- hs/tier1 gc
|
|
|
|
|
- hs/tier1 runtime
|
|
|
|
|
- hs/tier1 serviceability
|
|
|
|
|
include:
|
|
|
|
|
- test: jdk/tier1 part 1
|
|
|
|
|
suites: test/jdk/:tier1_part1
|
|
|
|
|
- test: jdk/tier1 part 2
|
|
|
|
|
suites: test/jdk/:tier1_part2
|
|
|
|
|
- test: jdk/tier1 part 3
|
|
|
|
|
suites: test/jdk/:tier1_part3
|
|
|
|
|
- test: langtools/tier1
|
|
|
|
|
suites: test/langtools/:tier1
|
|
|
|
|
- test: hs/tier1 common
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_common
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 compiler
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_compiler
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 gc
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_gc
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 runtime
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_runtime
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 serviceability
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_serviceability
|
|
|
|
|
artifact: -debug
|
|
|
|
|
|
|
|
|
|
# Reduced 32-bit build uses the same boot JDK as 64-bit build
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact
|
|
|
|
|
id: jtreg_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact (retry)
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
if: steps.jtreg_restore.outcome == 'failure'
|
|
|
|
|
|
|
|
|
|
- name: Restore build artifacts
|
|
|
|
|
id: build_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jdk-linux-x86${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jdk-linux-x86${{ matrix.artifact }}
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore build artifacts (retry)
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
name: transient_jdk-linux-x86${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
|
|
|
|
path: ~/jdk-linux-x86${{ matrix.artifact }}
|
|
|
|
|
if: steps.build_restore.outcome == 'failure'
|
|
|
|
|
|
|
|
|
|
- name: Unpack jdk
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}"
|
|
|
|
|
tar -xf "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}"
|
|
|
|
|
|
|
|
|
|
- name: Unpack tests
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}"
|
|
|
|
|
tar -xf "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}"
|
|
|
|
|
|
|
|
|
|
- name: Find root of jdk image dir
|
|
|
|
|
run: |
|
|
|
|
|
imageroot=`find ${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }} -name release -type f`
|
|
|
|
|
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
|
|
|
|
|
|
|
|
|
|
- name: Run tests
|
|
|
|
|
run: >
|
|
|
|
|
JDK_IMAGE_DIR=${{ env.imageroot }}
|
|
|
|
|
TEST_IMAGE_DIR=${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}
|
|
|
|
|
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
|
|
|
|
JT_HOME=${HOME}/jtreg
|
|
|
|
|
make test-prebuilt
|
|
|
|
|
CONF_NAME=run-test-prebuilt
|
|
|
|
|
LOG_CMDLINES=true
|
|
|
|
|
JTREG_VERBOSE=fail,error,time
|
|
|
|
|
TEST="${{ matrix.suites }}"
|
|
|
|
|
TEST_OPTS_JAVA_OPTIONS=
|
|
|
|
|
JTREG_KEYWORDS="!headful"
|
|
|
|
|
JTREG="JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash"
|
|
|
|
|
|
|
|
|
|
- name: Check that all tests executed successfully
|
|
|
|
|
if: always()
|
|
|
|
|
run: >
|
|
|
|
|
if ! grep --include=test-summary.txt -lqr build/*/test-results -e "TEST SUCCESS" ; then
|
|
|
|
|
cat build/*/test-results/*/text/newfailures.txt ;
|
|
|
|
|
exit 1 ;
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
- name: Create suitable test log artifact name
|
|
|
|
|
if: always()
|
|
|
|
|
run: echo "logsuffix=`echo ${{ matrix.test }} | sed -e 's!/!_!'g -e 's! !_!'g`" >> $GITHUB_ENV
|
|
|
|
|
|
|
|
|
|
- name: Package test results
|
|
|
|
|
if: always()
|
|
|
|
|
working-directory: build/run-test-prebuilt/test-results/
|
|
|
|
|
run: >
|
|
|
|
|
zip -r9
|
|
|
|
|
"$HOME/linux-x86${{ matrix.artifact }}_testresults_${{ env.logsuffix }}.zip"
|
|
|
|
|
.
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Package test support
|
|
|
|
|
if: always()
|
|
|
|
|
working-directory: build/run-test-prebuilt/test-support/
|
|
|
|
|
run: >
|
|
|
|
|
zip -r9
|
|
|
|
|
"$HOME/linux-x86${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip"
|
|
|
|
|
.
|
|
|
|
|
-i *.jtr
|
2020-11-04 14:44:27 +00:00
|
|
|
|
-i */hs_err*.log
|
|
|
|
|
-i */replay*.log
|
2020-10-27 13:57:07 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Persist test results
|
|
|
|
|
if: always()
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/linux-x86${{ matrix.artifact }}_testresults_${{ env.logsuffix }}.zip
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Persist test outputs
|
|
|
|
|
if: always()
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/linux-x86${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
2020-09-28 09:31:51 +00:00
|
|
|
|
windows_x64_build:
|
|
|
|
|
name: Windows x64
|
2020-11-16 08:02:11 +00:00
|
|
|
|
runs-on: "windows-2019"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
needs: prerequisites
|
|
|
|
|
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_windows_x64 != 'false'
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
flavor:
|
|
|
|
|
- build release
|
|
|
|
|
- build debug
|
|
|
|
|
include:
|
|
|
|
|
- flavor: build debug
|
|
|
|
|
flags: --enable-debug
|
|
|
|
|
artifact: -debug
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Restore cygwin packages from cache
|
|
|
|
|
id: cygwin
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/cygwin/packages
|
|
|
|
|
key: cygwin-packages-${{ runner.os }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Install cygwin
|
|
|
|
|
run: |
|
|
|
|
|
New-Item -Force -ItemType directory -Path "$HOME\cygwin"
|
|
|
|
|
& curl -L "https://www.cygwin.com/setup-x86_64.exe" -o "$HOME/cygwin/setup-x86_64.exe"
|
|
|
|
|
Start-Process -FilePath "$HOME\cygwin\setup-x86_64.exe" -ArgumentList "--quiet-mode --packages autoconf,make,zip,unzip --root $HOME\cygwin\cygwin64 --local-package-dir $HOME\cygwin\packages --site http://mirrors.kernel.org/sourceware/cygwin --no-desktop --no-shortcuts --no-startmenu --no-admin" -Wait -NoNewWindow
|
|
|
|
|
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "$HOME\bootjdk\$env:BOOT_JDK_VERSION"
|
|
|
|
|
& curl -L "$env:BOOT_JDK_URL" -o "$HOME/bootjdk/$env:BOOT_JDK_FILENAME"
|
|
|
|
|
$FileHash = Get-FileHash -Algorithm SHA256 "$HOME/bootjdk/$env:BOOT_JDK_FILENAME"
|
|
|
|
|
$FileHash.Hash -eq $env:BOOT_JDK_SHA256
|
|
|
|
|
& tar -xf "$HOME/bootjdk/$env:BOOT_JDK_FILENAME" -C "$HOME/bootjdk/$env:BOOT_JDK_VERSION"
|
|
|
|
|
Get-ChildItem "$HOME\bootjdk\$env:BOOT_JDK_VERSION\*\*" | Move-Item -Destination "$HOME\bootjdk\$env:BOOT_JDK_VERSION"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Checkout gtest sources
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
repository: "google/googletest"
|
|
|
|
|
ref: "release-${{ fromJson(needs.prerequisites.outputs.dependencies).GTEST_VERSION }}"
|
|
|
|
|
path: gtest
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: jtreg_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact (retry)
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jtreg/
|
2020-10-02 13:12:14 +00:00
|
|
|
|
if: steps.jtreg_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
2020-11-16 08:02:11 +00:00
|
|
|
|
- name: Ensure a specific version of MSVC is installed
|
|
|
|
|
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\2019\Enterprise" --quiet
|
|
|
|
|
--add Microsoft.VisualStudio.Component.VC.14.27.x86.x64'
|
|
|
|
|
|
2020-09-28 09:31:51 +00:00
|
|
|
|
- name: Configure
|
|
|
|
|
run: >
|
|
|
|
|
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
|
|
|
|
|
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
|
|
|
|
|
& bash configure
|
|
|
|
|
--with-conf-name=windows-x64
|
2020-11-16 08:02:11 +00:00
|
|
|
|
--with-msvc-toolset-version=14.27
|
2020-09-28 09:31:51 +00:00
|
|
|
|
${{ matrix.flags }}
|
|
|
|
|
--with-version-opt="$env:GITHUB_ACTOR-$env:GITHUB_SHA"
|
|
|
|
|
--with-version-build=0
|
|
|
|
|
--with-boot-jdk="$HOME/bootjdk/$env:BOOT_JDK_VERSION"
|
|
|
|
|
--with-jtreg="$HOME/jtreg"
|
|
|
|
|
--with-gtest="$env:GITHUB_WORKSPACE/gtest"
|
|
|
|
|
--with-default-make-target="product-bundles test-bundles"
|
|
|
|
|
--enable-jtreg-failure-handler
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
|
run: |
|
|
|
|
|
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
|
|
|
|
|
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
|
|
|
|
|
& make CONF_NAME=windows-x64 ${{ matrix.build-target }}
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Persist test bundles
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-windows-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: |
|
|
|
|
|
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}.zip
|
|
|
|
|
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
|
|
|
|
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols.tar.gz
|
|
|
|
|
if: matrix.build-target == false
|
|
|
|
|
|
|
|
|
|
windows_x64_test:
|
|
|
|
|
name: Windows x64
|
2020-11-16 08:02:11 +00:00
|
|
|
|
runs-on: "windows-2019"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
needs:
|
|
|
|
|
- prerequisites
|
|
|
|
|
- windows_x64_build
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
test:
|
|
|
|
|
- jdk/tier1 part 1
|
|
|
|
|
- jdk/tier1 part 2
|
|
|
|
|
- jdk/tier1 part 3
|
|
|
|
|
- langtools/tier1
|
|
|
|
|
- hs/tier1 common
|
|
|
|
|
- hs/tier1 compiler
|
|
|
|
|
- hs/tier1 gc
|
|
|
|
|
- hs/tier1 runtime
|
|
|
|
|
- hs/tier1 serviceability
|
|
|
|
|
include:
|
|
|
|
|
- test: jdk/tier1 part 1
|
|
|
|
|
suites: test/jdk/:tier1_part1
|
|
|
|
|
- test: jdk/tier1 part 2
|
|
|
|
|
suites: test/jdk/:tier1_part2
|
|
|
|
|
- test: jdk/tier1 part 3
|
|
|
|
|
suites: test/jdk/:tier1_part3
|
|
|
|
|
- test: langtools/tier1
|
|
|
|
|
suites: test/langtools/:tier1
|
|
|
|
|
- test: hs/tier1 common
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_common
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 compiler
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_compiler
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 gc
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_gc
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 runtime
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_runtime
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 serviceability
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_serviceability
|
|
|
|
|
artifact: -debug
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "$HOME\bootjdk\$env:BOOT_JDK_VERSION"
|
|
|
|
|
& curl -L "$env:BOOT_JDK_URL" -o "$HOME/bootjdk/$env:BOOT_JDK_FILENAME"
|
|
|
|
|
$FileHash = Get-FileHash -Algorithm SHA256 "$HOME/bootjdk/$env:BOOT_JDK_FILENAME"
|
|
|
|
|
$FileHash.Hash -eq $env:BOOT_JDK_SHA256
|
|
|
|
|
& tar -xf "$HOME/bootjdk/$env:BOOT_JDK_FILENAME" -C "$HOME/bootjdk/$env:BOOT_JDK_VERSION"
|
|
|
|
|
Get-ChildItem "$HOME\bootjdk\$env:BOOT_JDK_VERSION\*\*" | Move-Item -Destination "$HOME\bootjdk\$env:BOOT_JDK_VERSION"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore cygwin packages from cache
|
|
|
|
|
id: cygwin
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/cygwin/packages
|
|
|
|
|
key: cygwin-packages-${{ runner.os }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Install cygwin
|
|
|
|
|
run: |
|
|
|
|
|
New-Item -Force -ItemType directory -Path "$HOME\cygwin"
|
|
|
|
|
& curl -L "https://www.cygwin.com/setup-x86_64.exe" -o "$HOME/cygwin/setup-x86_64.exe"
|
|
|
|
|
Start-Process -FilePath "$HOME\cygwin\setup-x86_64.exe" -ArgumentList "--quiet-mode --packages autoconf,make,zip,unzip --root $HOME\cygwin\cygwin64 --local-package-dir $HOME\cygwin\packages --site http://mirrors.kernel.org/sourceware/cygwin --no-desktop --no-shortcuts --no-startmenu --no-admin" -Wait -NoNewWindow
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: jtreg_restore
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jtreg/
|
2020-10-02 13:12:14 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact (retry)
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
if: steps.jtreg_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Restore build artifacts
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: build_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-windows-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jdk-windows-x64${{ matrix.artifact }}
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore build artifacts (retry)
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-windows-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jdk-windows-x64${{ matrix.artifact }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
if: steps.build_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Unpack jdk
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}"
|
|
|
|
|
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}.zip" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}"
|
|
|
|
|
|
|
|
|
|
- name: Unpack symbols
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols"
|
|
|
|
|
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols.tar.gz" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols"
|
|
|
|
|
|
|
|
|
|
- name: Unpack tests
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}"
|
|
|
|
|
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}"
|
|
|
|
|
|
|
|
|
|
- name: Find root of jdk image dir
|
2020-10-06 13:39:57 +00:00
|
|
|
|
run: echo ("imageroot=" + (Get-ChildItem -Path $HOME/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }} -Filter release -Recurse -ErrorAction SilentlyContinue -Force).DirectoryName) | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Run tests
|
|
|
|
|
run: >
|
|
|
|
|
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
|
|
|
|
|
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
|
|
|
|
|
$env:JDK_IMAGE_DIR = cygpath "${{ env.imageroot }}" ;
|
|
|
|
|
$env:SYMBOLS_IMAGE_DIR = cygpath "${{ env.imageroot }}" ;
|
|
|
|
|
$env:TEST_IMAGE_DIR = cygpath "$HOME/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}" ;
|
|
|
|
|
$env:BOOT_JDK = cygpath "$HOME/bootjdk/$env:BOOT_JDK_VERSION" ;
|
|
|
|
|
$env:JT_HOME = cygpath "$HOME/jtreg" ;
|
|
|
|
|
& make test-prebuilt
|
|
|
|
|
CONF_NAME=run-test-prebuilt
|
|
|
|
|
LOG_CMDLINES=true
|
|
|
|
|
JTREG_VERBOSE=fail,error,time
|
|
|
|
|
TEST=${{ matrix.suites }}
|
|
|
|
|
TEST_OPTS_JAVA_OPTIONS=
|
|
|
|
|
JTREG_KEYWORDS="!headful"
|
2020-10-02 13:12:14 +00:00
|
|
|
|
JTREG="JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash"
|
|
|
|
|
|
|
|
|
|
- name: Check that all tests executed successfully
|
|
|
|
|
if: always()
|
|
|
|
|
run: >
|
|
|
|
|
if ((Get-ChildItem -Path build\*\test-results\test-summary.txt -Recurse | Select-String -Pattern "TEST SUCCESS" ).Count -eq 0) {
|
|
|
|
|
Get-Content -Path build\*\test-results\*\*\newfailures.txt ;
|
|
|
|
|
exit 1
|
|
|
|
|
}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Create suitable test log artifact name
|
|
|
|
|
if: always()
|
2020-10-06 13:39:57 +00:00
|
|
|
|
run: echo ("logsuffix=" + ("${{ matrix.test }}" -replace "/", "_" -replace " ", "_")) | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
2020-10-26 11:20:38 +00:00
|
|
|
|
- name: Package test results
|
|
|
|
|
if: always()
|
|
|
|
|
working-directory: build/run-test-prebuilt/test-results/
|
|
|
|
|
run: >
|
|
|
|
|
$env:Path = "$HOME\cygwin\cygwin64\bin;$env:Path" ;
|
|
|
|
|
zip -r9
|
|
|
|
|
"$HOME/windows-x64${{ matrix.artifact }}_testresults_${{ env.logsuffix }}.zip"
|
|
|
|
|
.
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Package test support
|
|
|
|
|
if: always()
|
|
|
|
|
working-directory: build/run-test-prebuilt/test-support/
|
|
|
|
|
run: >
|
|
|
|
|
$env:Path = "$HOME\cygwin\cygwin64\bin;$env:Path" ;
|
|
|
|
|
zip -r9
|
|
|
|
|
"$HOME/windows-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip"
|
|
|
|
|
.
|
|
|
|
|
-i *.jtr
|
2020-11-04 14:44:27 +00:00
|
|
|
|
-i */hs_err*.log
|
|
|
|
|
-i */replay*.log
|
2020-10-26 11:20:38 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Persist test results
|
|
|
|
|
if: always()
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/windows-x64${{ matrix.artifact }}_testresults_${{ env.logsuffix }}.zip
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Persist test outputs
|
2020-09-28 09:31:51 +00:00
|
|
|
|
if: always()
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
2020-10-26 11:20:38 +00:00
|
|
|
|
path: ~/windows-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip
|
2020-09-28 09:31:51 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
macos_x64_build:
|
|
|
|
|
name: macOS x64
|
2020-11-16 08:00:21 +00:00
|
|
|
|
runs-on: "macos-10.15"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
needs: prerequisites
|
|
|
|
|
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_macos_x64 != 'false'
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
flavor:
|
|
|
|
|
- build release
|
|
|
|
|
- build debug
|
|
|
|
|
include:
|
|
|
|
|
- flavor: build release
|
|
|
|
|
- flavor: build debug
|
|
|
|
|
flags: --enable-debug
|
|
|
|
|
artifact: -debug
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
path: jdk
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p ${HOME}/bootjdk/${BOOT_JDK_VERSION} || true
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | shasum -a 256 -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: jtreg_restore
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact (retry)
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jtreg/
|
2020-10-02 13:12:14 +00:00
|
|
|
|
if: steps.jtreg_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Checkout gtest sources
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
with:
|
|
|
|
|
repository: "google/googletest"
|
|
|
|
|
ref: "release-${{ fromJson(needs.prerequisites.outputs.dependencies).GTEST_VERSION }}"
|
|
|
|
|
path: gtest
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
|
run: brew install make
|
|
|
|
|
|
2020-11-16 08:00:21 +00:00
|
|
|
|
- name: Select Xcode version
|
|
|
|
|
run: sudo xcode-select --switch /Applications/Xcode_11.3.1.app/Contents/Developer
|
|
|
|
|
|
2020-09-28 09:31:51 +00:00
|
|
|
|
- name: Configure
|
|
|
|
|
run: >
|
|
|
|
|
bash configure
|
|
|
|
|
--with-conf-name=macos-x64
|
|
|
|
|
${{ matrix.flags }}
|
|
|
|
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
|
|
|
|
--with-version-build=0
|
|
|
|
|
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
|
|
|
|
|
--with-jtreg=${HOME}/jtreg
|
|
|
|
|
--with-gtest=${GITHUB_WORKSPACE}/gtest
|
|
|
|
|
--with-default-make-target="product-bundles test-bundles"
|
|
|
|
|
--with-zlib=system
|
|
|
|
|
--enable-jtreg-failure-handler
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
|
run: make CONF_NAME=macos-x64 ${{ matrix.build-target }}
|
|
|
|
|
working-directory: jdk
|
|
|
|
|
|
|
|
|
|
- name: Persist test bundles
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-macos-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: |
|
|
|
|
|
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz
|
|
|
|
|
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
|
|
|
|
if: matrix.build-target == false
|
|
|
|
|
|
|
|
|
|
macos_x64_test:
|
|
|
|
|
name: macOS x64
|
2020-11-16 08:00:21 +00:00
|
|
|
|
runs-on: "macos-10.15"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
needs:
|
|
|
|
|
- prerequisites
|
|
|
|
|
- macos_x64_build
|
|
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
|
fail-fast: false
|
|
|
|
|
matrix:
|
|
|
|
|
test:
|
|
|
|
|
- jdk/tier1 part 1
|
|
|
|
|
- jdk/tier1 part 2
|
|
|
|
|
- jdk/tier1 part 3
|
|
|
|
|
- langtools/tier1
|
|
|
|
|
- hs/tier1 common
|
|
|
|
|
- hs/tier1 compiler
|
|
|
|
|
- hs/tier1 gc
|
|
|
|
|
- hs/tier1 runtime
|
|
|
|
|
- hs/tier1 serviceability
|
|
|
|
|
include:
|
|
|
|
|
- test: jdk/tier1 part 1
|
|
|
|
|
suites: test/jdk/:tier1_part1
|
|
|
|
|
- test: jdk/tier1 part 2
|
|
|
|
|
suites: test/jdk/:tier1_part2
|
|
|
|
|
- test: jdk/tier1 part 3
|
|
|
|
|
suites: test/jdk/:tier1_part3
|
|
|
|
|
- test: langtools/tier1
|
|
|
|
|
suites: test/langtools/:tier1
|
|
|
|
|
- test: hs/tier1 common
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_common
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 compiler
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_compiler
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 gc
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_gc
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 runtime
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_runtime
|
|
|
|
|
artifact: -debug
|
|
|
|
|
- test: hs/tier1 serviceability
|
|
|
|
|
suites: test/hotspot/jtreg/:tier1_serviceability
|
|
|
|
|
artifact: -debug
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
|
|
|
|
|
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
|
|
|
|
|
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_FILENAME }}"
|
|
|
|
|
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_URL }}"
|
|
|
|
|
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_SHA256 }}"
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout the source
|
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
|
|
- name: Restore boot JDK from cache
|
|
|
|
|
id: bootjdk
|
|
|
|
|
uses: actions/cache@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
|
|
|
|
|
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
|
|
|
|
|
|
|
|
|
|
- name: Download boot JDK
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p ${HOME}/bootjdk/${BOOT_JDK_VERSION} || true
|
|
|
|
|
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
|
|
|
|
|
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | shasum -a 256 -c >/dev/null -
|
|
|
|
|
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
|
|
|
|
|
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
|
|
|
|
|
if: steps.bootjdk.outputs.cache-hit != 'true'
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: jtreg_restore
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jtreg/
|
2020-10-02 13:12:14 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore jtreg artifact (retry)
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jtreg/
|
|
|
|
|
if: steps.jtreg_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Restore build artifacts
|
2020-10-02 13:12:14 +00:00
|
|
|
|
id: build_restore
|
2020-09-28 09:31:51 +00:00
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-macos-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: ~/jdk-macos-x64${{ matrix.artifact }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Restore build artifacts (retry)
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: transient_jdk-macos-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-10-02 13:12:14 +00:00
|
|
|
|
path: ~/jdk-macos-x64${{ matrix.artifact }}
|
|
|
|
|
if: steps.build_restore.outcome == 'failure'
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Unpack jdk
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}"
|
|
|
|
|
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}"
|
|
|
|
|
|
|
|
|
|
- name: Unpack tests
|
|
|
|
|
run: |
|
|
|
|
|
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}"
|
|
|
|
|
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}"
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
|
run: brew install make
|
|
|
|
|
|
2020-11-16 08:00:21 +00:00
|
|
|
|
- name: Select Xcode version
|
|
|
|
|
run: sudo xcode-select --switch /Applications/Xcode_11.3.1.app/Contents/Developer
|
|
|
|
|
|
2020-09-28 09:31:51 +00:00
|
|
|
|
- name: Find root of jdk image dir
|
|
|
|
|
run: |
|
|
|
|
|
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }} -name release -type f`
|
2020-10-06 13:39:57 +00:00
|
|
|
|
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Run tests
|
|
|
|
|
run: >
|
|
|
|
|
JDK_IMAGE_DIR=${{ env.imageroot }}
|
|
|
|
|
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}
|
|
|
|
|
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
|
|
|
|
|
JT_HOME=${HOME}/jtreg
|
|
|
|
|
gmake test-prebuilt
|
|
|
|
|
CONF_NAME=run-test-prebuilt
|
|
|
|
|
LOG_CMDLINES=true
|
|
|
|
|
JTREG_VERBOSE=fail,error,time
|
|
|
|
|
TEST=${{ matrix.suites }}
|
|
|
|
|
TEST_OPTS_JAVA_OPTIONS=
|
|
|
|
|
JTREG_KEYWORDS="!headful"
|
2020-10-02 13:12:14 +00:00
|
|
|
|
JTREG="JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash"
|
|
|
|
|
|
|
|
|
|
- name: Check that all tests executed successfully
|
|
|
|
|
if: always()
|
|
|
|
|
run: >
|
|
|
|
|
if ! grep --include=test-summary.txt -lqr build/*/test-results -e "TEST SUCCESS" ; then
|
|
|
|
|
cat build/*/test-results/*/text/newfailures.txt ;
|
|
|
|
|
exit 1 ;
|
|
|
|
|
fi
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
|
|
|
|
- name: Create suitable test log artifact name
|
|
|
|
|
if: always()
|
2020-10-06 13:39:57 +00:00
|
|
|
|
run: echo "logsuffix=`echo ${{ matrix.test }} | sed -e 's!/!_!'g -e 's! !_!'g`" >> $GITHUB_ENV
|
2020-09-28 09:31:51 +00:00
|
|
|
|
|
2020-10-26 11:20:38 +00:00
|
|
|
|
- name: Package test results
|
|
|
|
|
if: always()
|
|
|
|
|
working-directory: build/run-test-prebuilt/test-results/
|
|
|
|
|
run: >
|
|
|
|
|
zip -r9
|
|
|
|
|
"$HOME/macos-x64${{ matrix.artifact }}_testresults_${{ env.logsuffix }}.zip"
|
|
|
|
|
.
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Package test support
|
|
|
|
|
if: always()
|
|
|
|
|
working-directory: build/run-test-prebuilt/test-support/
|
|
|
|
|
run: >
|
|
|
|
|
zip -r9
|
|
|
|
|
"$HOME/macos-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip"
|
|
|
|
|
.
|
|
|
|
|
-i *.jtr
|
2020-11-04 14:44:27 +00:00
|
|
|
|
-i */hs_err*.log
|
|
|
|
|
-i */replay*.log
|
2020-10-26 11:20:38 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Persist test results
|
|
|
|
|
if: always()
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
path: ~/macos-x64${{ matrix.artifact }}_testresults_${{ env.logsuffix }}.zip
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
- name: Persist test outputs
|
2020-09-28 09:31:51 +00:00
|
|
|
|
if: always()
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
2020-10-26 11:20:38 +00:00
|
|
|
|
path: ~/macos-x64${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip
|
2020-09-28 09:31:51 +00:00
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
|
|
artifacts:
|
|
|
|
|
name: Post-process artifacts
|
2020-11-20 08:04:08 +00:00
|
|
|
|
runs-on: "ubuntu-20.04"
|
2020-09-28 09:31:51 +00:00
|
|
|
|
if: always()
|
|
|
|
|
continue-on-error: true
|
|
|
|
|
needs:
|
2020-10-26 10:18:36 +00:00
|
|
|
|
- prerequisites
|
2020-11-13 12:36:51 +00:00
|
|
|
|
- linux_aarch64_build
|
|
|
|
|
- linux_arm_build
|
|
|
|
|
- linux_ppc64le_build
|
|
|
|
|
- linux_s390x_build
|
2020-09-28 09:31:51 +00:00
|
|
|
|
- linux_x64_test
|
2020-10-27 13:57:07 +00:00
|
|
|
|
- linux_x86_test
|
2020-09-28 09:31:51 +00:00
|
|
|
|
- windows_x64_test
|
|
|
|
|
- macos_x64_test
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Determine current artifacts endpoint
|
|
|
|
|
id: actions_runtime
|
|
|
|
|
uses: actions/github-script@v3
|
|
|
|
|
with:
|
|
|
|
|
script: "return { url: process.env['ACTIONS_RUNTIME_URL'], token: process.env['ACTIONS_RUNTIME_TOKEN'] }"
|
|
|
|
|
|
|
|
|
|
- name: Display current artifacts
|
|
|
|
|
run: >
|
|
|
|
|
curl -s -H 'Accept: application/json;api-version=6.0-preview'
|
|
|
|
|
-H 'Authorization: Bearer ${{ fromJson(steps.actions_runtime.outputs.result).token }}'
|
|
|
|
|
'${{ fromJson(steps.actions_runtime.outputs.result).url }}_apis/pipelines/workflows/${{ github.run_id }}/artifacts?api-version=6.0-preview'
|
|
|
|
|
|
|
|
|
|
- name: Delete transient artifacts
|
|
|
|
|
run: >
|
|
|
|
|
for url in `
|
|
|
|
|
curl -s -H 'Accept: application/json;api-version=6.0-preview'
|
|
|
|
|
-H 'Authorization: Bearer ${{ fromJson(steps.actions_runtime.outputs.result).token }}'
|
|
|
|
|
'${{ fromJson(steps.actions_runtime.outputs.result).url }}_apis/pipelines/workflows/${{ github.run_id }}/artifacts?api-version=6.0-preview' |
|
|
|
|
|
jq -r -c '.value | map(select(.name|startswith("transient_"))) | .[].url'`; do
|
|
|
|
|
curl -s -H 'Accept: application/json;api-version=6.0-preview'
|
|
|
|
|
-H 'Authorization: Bearer ${{ fromJson(steps.actions_runtime.outputs.result).token }}'
|
|
|
|
|
-X DELETE "${url}";
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
- name: Fetch remaining artifacts (test results)
|
|
|
|
|
uses: actions/download-artifact@v2
|
|
|
|
|
with:
|
|
|
|
|
path: test-results
|
|
|
|
|
|
|
|
|
|
- name: Delete remaining artifacts
|
|
|
|
|
run: >
|
|
|
|
|
for url in `
|
|
|
|
|
curl -s -H 'Accept: application/json;api-version=6.0-preview'
|
|
|
|
|
-H 'Authorization: Bearer ${{ fromJson(steps.actions_runtime.outputs.result).token }}'
|
|
|
|
|
'${{ fromJson(steps.actions_runtime.outputs.result).url }}_apis/pipelines/workflows/${{ github.run_id }}/artifacts?api-version=6.0-preview' |
|
|
|
|
|
jq -r -c '.value | .[].url'`; do
|
|
|
|
|
curl -s -H 'Accept: application/json;api-version=6.0-preview'
|
|
|
|
|
-H 'Authorization: Bearer ${{ fromJson(steps.actions_runtime.outputs.result).token }}'
|
|
|
|
|
-X DELETE "${url}";
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
- name: Upload a combined test results artifact
|
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
|
with:
|
2020-10-06 13:39:57 +00:00
|
|
|
|
name: test-results_${{ needs.prerequisites.outputs.bundle_id }}
|
2020-09-28 09:31:51 +00:00
|
|
|
|
path: test-results
|