diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e4c05acb684..df53a2cd310 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,7 +36,7 @@ on: platforms: description: 'Platform(s) to execute on (comma separated, e.g. "linux-x64, macos, aarch64")' required: true - default: 'linux-x64, linux-x86-hs, linux-x64-variants, linux-cross-compile, alpine-linux-x64, macos-x64, macos-aarch64, windows-x64, windows-aarch64, docs' + default: 'linux-x64, linux-x86, linux-x64-variants, linux-cross-compile, macos-x64, macos-aarch64, windows-x64, windows-aarch64, docs' configure-arguments: description: 'Additional configure arguments' required: false @@ -57,15 +57,11 @@ jobs: select: name: 'Select platforms' runs-on: ubuntu-22.04 - env: - # List of platforms to exclude by default - EXCLUDED_PLATFORMS: 'alpine-linux-x64' outputs: linux-x64: ${{ steps.include.outputs.linux-x64 }} - linux-x86-hs: ${{ steps.include.outputs.linux-x86-hs }} + linux-x86: ${{ steps.include.outputs.linux-x86 }} linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }} linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }} - alpine-linux-x64: ${{ steps.include.outputs.alpine-linux-x64 }} macos-x64: ${{ steps.include.outputs.macos-x64 }} macos-aarch64: ${{ steps.include.outputs.macos-aarch64 }} windows-x64: ${{ steps.include.outputs.windows-x64 }} @@ -82,10 +78,6 @@ jobs: # Returns 'true' if the input platform list matches any of the platform monikers given as argument, # 'false' otherwise. # arg $1: platform name or names to look for - - # Convert EXCLUDED_PLATFORMS from a comma-separated string to an array - IFS=',' read -r -a excluded_array <<< "$EXCLUDED_PLATFORMS" - function check_platform() { if [[ $GITHUB_EVENT_NAME == workflow_dispatch ]]; then input='${{ github.event.inputs.platforms }}' @@ -102,13 +94,7 @@ jobs: normalized_input="$(echo ,$input, | tr -d ' ')" if [[ "$normalized_input" == ",," ]]; then - # For an empty input, assume all platforms should run, except those in the EXCLUDED_PLATFORMS list - for excluded in "${excluded_array[@]}"; do - if [[ "$1" == "$excluded" ]]; then - echo 'false' - return - fi - done + # For an empty input, assume all platforms should run echo 'true' return else @@ -119,24 +105,15 @@ jobs: return fi done - - # If not explicitly included, check against the EXCLUDED_PLATFORMS list - for excluded in "${excluded_array[@]}"; do - if [[ "$1" == "$excluded" ]]; then - echo 'false' - return - fi - done fi echo 'false' } echo "linux-x64=$(check_platform linux-x64 linux x64)" >> $GITHUB_OUTPUT - echo "linux-x86-hs=$(check_platform linux-x86-hs linux x86)" >> $GITHUB_OUTPUT + echo "linux-x86=$(check_platform linux-x86 linux x86)" >> $GITHUB_OUTPUT echo "linux-x64-variants=$(check_platform linux-x64-variants variants)" >> $GITHUB_OUTPUT echo "linux-cross-compile=$(check_platform linux-cross-compile cross-compile)" >> $GITHUB_OUTPUT - echo "alpine-linux-x64=$(check_platform alpine-linux-x64 alpine-linux x64)" >> $GITHUB_OUTPUT echo "macos-x64=$(check_platform macos-x64 macos x64)" >> $GITHUB_OUTPUT echo "macos-aarch64=$(check_platform macos-aarch64 macos aarch64)" >> $GITHUB_OUTPUT echo "windows-x64=$(check_platform windows-x64 windows x64)" >> $GITHUB_OUTPUT @@ -158,23 +135,22 @@ jobs: make-arguments: ${{ github.event.inputs.make-arguments }} if: needs.select.outputs.linux-x64 == 'true' - build-linux-x86-hs: - name: linux-x86-hs + build-linux-x86: + name: linux-x86 needs: select uses: ./.github/workflows/build-linux.yml with: platform: linux-x86 - make-target: 'hotspot' gcc-major-version: '10' gcc-package-suffix: '-multilib' apt-architecture: 'i386' # Some multilib libraries do not have proper inter-dependencies, so we have to # install their dependencies manually. - apt-extra-packages: 'libfreetype-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libffi-dev:i386' + apt-extra-packages: 'libfreetype-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386 libgcc-s1:i386 libstdc++6:i386 libffi-dev:i386' extra-conf-options: '--with-target-bits=32 --enable-fallback-linker --enable-libffi-bundling' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.linux-x86-hs == 'true' + if: needs.select.outputs.linux-x86 == 'true' build-linux-x64-hs-nopch: name: linux-x64-hs-nopch @@ -244,16 +220,6 @@ jobs: make-arguments: ${{ github.event.inputs.make-arguments }} if: needs.select.outputs.linux-cross-compile == 'true' - build-alpine-linux-x64: - name: alpine-linux-x64 - needs: select - uses: ./.github/workflows/build-alpine-linux.yml - with: - platform: alpine-linux-x64 - configure-arguments: ${{ github.event.inputs.configure-arguments }} - make-arguments: ${{ github.event.inputs.make-arguments }} - if: needs.select.outputs.alpine-linux-x64 == 'true' - build-macos-x64: name: macos-x64 needs: select @@ -334,6 +300,16 @@ jobs: bootjdk-platform: linux-x64 runs-on: ubuntu-22.04 + test-linux-x86: + name: linux-x86 + needs: + - build-linux-x86 + uses: ./.github/workflows/test.yml + with: + platform: linux-x86 + bootjdk-platform: linux-x64 + runs-on: ubuntu-22.04 + test-macos-x64: name: macos-x64 needs: @@ -371,39 +347,42 @@ jobs: if: always() needs: - build-linux-x64 - - build-linux-x86-hs + - build-linux-x86 - build-linux-x64-hs-nopch - build-linux-x64-hs-zero - build-linux-x64-hs-minimal - build-linux-x64-hs-optimized - build-linux-cross-compile - - build-alpine-linux-x64 - build-macos-x64 - build-macos-aarch64 - build-windows-x64 - build-windows-aarch64 - test-linux-x64 + - test-linux-x86 - test-macos-x64 - test-windows-x64 steps: + # Hack to get hold of the api environment variables that are only defined for actions + - name: 'Get API configuration' + id: api + uses: actions/github-script@v7 + with: + script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }' + - name: 'Remove bundle artifacts' run: | # Find and remove all bundle artifacts - # See: https://docs.github.com/en/rest/actions/artifacts?apiVersion=2022-11-28 - ALL_ARTIFACT_IDS="$(curl -sL \ - -H 'Accept: application/vnd.github+json' \ - -H 'Authorization: Bearer ${{ github.token }}' \ - -H 'X-GitHub-Api-Version: 2022-11-28' \ - '${{ github.api_url }}/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts?per_page=100')" - BUNDLE_ARTIFACT_IDS="$(echo "$ALL_ARTIFACT_IDS" | jq -r -c '.artifacts | map(select(.name|startswith("bundles-"))) | .[].id')" - for id in $BUNDLE_ARTIFACT_IDS; do - echo "Removing $id" - curl -sL \ - -X DELETE \ - -H 'Accept: application/vnd.github+json' \ - -H 'Authorization: Bearer ${{ github.token }}' \ - -H 'X-GitHub-Api-Version: 2022-11-28' \ - "${{ github.api_url }}/repos/${{ github.repository }}/actions/artifacts/$id" \ + ALL_ARTIFACT_URLS="$(curl -s \ + -H 'Accept: application/json;api-version=6.0-preview' \ + -H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \ + '${{ fromJson(steps.api.outputs.result).url }}_apis/pipelines/workflows/${{ github.run_id }}/artifacts?api-version=6.0-preview')" + BUNDLE_ARTIFACT_URLS="$(echo "$ALL_ARTIFACT_URLS" | jq -r -c '.value | map(select(.name|startswith("bundles-"))) | .[].url')" + for url in $BUNDLE_ARTIFACT_URLS; do + echo "Removing $url" + curl -s \ + -H 'Accept: application/json;api-version=6.0-preview' \ + -H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \ + -X DELETE "$url" \ || echo "Failed to remove bundle" done