156 lines
5.0 KiB
YAML
156 lines
5.0 KiB
YAML
#
|
|
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# This code is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License version 2 only, as
|
|
# published by the Free Software Foundation. Oracle designates this
|
|
# particular file as subject to the "Classpath" exception as provided
|
|
# by Oracle in the LICENSE file that accompanied this code.
|
|
#
|
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
# version 2 for more details (a copy is included in the LICENSE file that
|
|
# accompanied this code).
|
|
#
|
|
# You should have received a copy of the GNU General Public License version
|
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
#
|
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
# or visit www.oracle.com if you need additional information or have any
|
|
# questions.
|
|
#
|
|
|
|
name: 'Build (windows)'
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
platform:
|
|
required: true
|
|
type: string
|
|
extra-conf-options:
|
|
required: false
|
|
type: string
|
|
make-target:
|
|
required: false
|
|
type: string
|
|
default: 'product-bundles test-bundles'
|
|
debug-levels:
|
|
required: false
|
|
type: string
|
|
default: '[ "debug", "release" ]'
|
|
msvc-toolset-version:
|
|
required: true
|
|
type: string
|
|
msvc-toolset-architecture:
|
|
required: true
|
|
type: string
|
|
configure-arguments:
|
|
required: false
|
|
type: string
|
|
make-arguments:
|
|
required: false
|
|
type: string
|
|
|
|
env:
|
|
# These are needed to make the MSYS2 bash work properly
|
|
MSYS2_PATH_TYPE: minimal
|
|
CHERE_INVOKING: 1
|
|
|
|
jobs:
|
|
build-windows:
|
|
name: build
|
|
runs-on: windows-2019
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
debug-level: ${{ fromJSON(inputs.debug-levels) }}
|
|
include:
|
|
- debug-level: debug
|
|
flags: --with-debug-level=fastdebug
|
|
suffix: -debug
|
|
|
|
steps:
|
|
- name: 'Checkout the JDK source'
|
|
uses: actions/checkout@v4
|
|
|
|
- name: 'Get MSYS2'
|
|
uses: ./.github/actions/get-msys2
|
|
|
|
- name: 'Get the BootJDK'
|
|
id: bootjdk
|
|
uses: ./.github/actions/get-bootjdk
|
|
with:
|
|
platform: windows-x64
|
|
|
|
- name: 'Get JTReg'
|
|
id: jtreg
|
|
uses: ./.github/actions/get-jtreg
|
|
|
|
- name: 'Get GTest'
|
|
id: gtest
|
|
uses: ./.github/actions/get-gtest
|
|
|
|
- name: 'Check toolchain installed'
|
|
id: toolchain-check
|
|
run: |
|
|
set +e
|
|
'/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }}
|
|
if [ $? -eq 0 ]; then
|
|
echo "Toolchain is already installed"
|
|
echo "toolchain-installed=true" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "Toolchain is not yet installed"
|
|
echo "toolchain-installed=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: 'Install toolchain and dependencies'
|
|
run: |
|
|
# Run Visual Studio Installer
|
|
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
|
|
modify --quiet --installPath 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise' \
|
|
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
|
|
if: steps.toolchain-check.outputs.toolchain-installed != 'true'
|
|
|
|
- name: 'Configure'
|
|
run: >
|
|
bash configure
|
|
--with-conf-name=${{ inputs.platform }}
|
|
${{ matrix.flags }}
|
|
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
|
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
|
|
--with-jtreg=${{ steps.jtreg.outputs.path }}
|
|
--with-gtest=${{ steps.gtest.outputs.path }}
|
|
--enable-jtreg-failure-handler
|
|
--with-msvc-toolset-version=${{ inputs.msvc-toolset-version }}
|
|
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
|
|
echo "Dumping config.log:" &&
|
|
cat config.log &&
|
|
exit 1)
|
|
env:
|
|
# We need a minimal PATH on Windows
|
|
# Set PATH to "", so just GITHUB_PATH is included
|
|
PATH: ''
|
|
shell: env /usr/bin/bash --login -eo pipefail {0}
|
|
|
|
- name: 'Build'
|
|
id: build
|
|
uses: ./.github/actions/do-build
|
|
with:
|
|
make-target: '${{ inputs.make-target }} ${{ inputs.make-arguments }}'
|
|
platform: ${{ inputs.platform }}
|
|
debug-suffix: '${{ matrix.suffix }}'
|
|
|
|
- name: 'Upload bundles'
|
|
uses: ./.github/actions/upload-bundles
|
|
with:
|
|
platform: ${{ inputs.platform }}
|
|
debug-suffix: '${{ matrix.suffix }}'
|