# # Copyright (c) 2022, 2024, 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 (macos)' on: workflow_call: inputs: platform: required: true type: string runs-on: 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" ]' xcode-toolset-version: required: true type: string configure-arguments: required: false type: string make-arguments: required: false type: string jobs: build-macos: name: build runs-on: ${{ inputs.runs-on }} 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 the BootJDK' id: bootjdk uses: ./.github/actions/get-bootjdk with: platform: ${{ inputs.platform }} - name: 'Get JTReg' id: jtreg uses: ./.github/actions/get-jtreg - name: 'Get GTest' id: gtest uses: ./.github/actions/get-gtest - name: 'Install toolchain and dependencies' run: | # Run Homebrew installation and xcode-select brew install autoconf make sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-toolset-version }}.app/Contents/Developer # This will make GNU make available as 'make' and not only as 'gmake' echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH - 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 }} --with-zlib=system --with-jmod-compress=zip-1 ${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || ( echo "Dumping config.log:" && cat config.log && exit 1) - 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 }}'