Build iOS Graal JDK 25 #8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build iOS Graal JDK 25 | |
| "on": | |
| workflow_dispatch: | |
| inputs: | |
| release_version: | |
| description: Version to attach to the downloadable workflow artifact. | |
| required: true | |
| default: 25.0.4-ios.1 | |
| type: string | |
| push: | |
| tags: | |
| - "*" | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| runs-on: macos-26 | |
| steps: | |
| - uses: actions/checkout@v7.0.1 | |
| with: | |
| fetch-depth: 1 | |
| submodules: false | |
| - name: Initialize pinned source submodules | |
| run: git submodule update --init --recursive --depth 1 | |
| - name: Record source revisions | |
| id: source-revisions | |
| run: echo "key=$(git submodule status | shasum -a 256 | cut -d ' ' -f 1)" >> "$GITHUB_OUTPUT" | |
| - uses: graalvm/setup-graalvm@v1 | |
| with: | |
| version: 25.0.4 | |
| distribution: graalvm | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| cache: gradle | |
| - name: Restore native build cache | |
| uses: actions/cache@v5.0.5 | |
| with: | |
| path: | | |
| labs-openjdk/labs-openjdk-25/build/labsjdk | |
| labs-openjdk/svm.openjdk.xcodeproj/build | |
| svm/svm.graal.xcodeproj/build | |
| cap-cache-generator/.gradle | |
| cap-cache-generator/build/cap-cache | |
| key: ios-graal-native-image-${{ runner.os }}-${{ runner.arch }}-${{ steps.source-revisions.outputs.key }}-${{ hashFiles('toolchain.env', 'labs-openjdk/ios-jdk.patch', 'labs-openjdk/svm.openjdk.xcodeproj/project.pbxproj', 'svm/svm.graal.xcodeproj/project.pbxproj', 'cap-cache-generator/*.kts', 'cap-cache-generator/gradle/wrapper/gradle-wrapper.properties') }} | |
| - name: Install OpenJDK build prerequisites | |
| run: brew install autoconf | |
| - name: Build release assets | |
| env: | |
| GRAALVM_HOME: ${{ env.JAVA_HOME }} | |
| RELEASE_VERSION: ${{ inputs.release_version || github.ref_name }} | |
| run: ./scripts/build-release.sh | |
| - name: Verify release bundle | |
| run: | | |
| unzip -t dist/*.zip | |
| mkdir bundle | |
| unzip -q dist/*.zip -d bundle | |
| cd bundle && shasum -a 256 -c SHA256SUMS | |
| - uses: actions/upload-artifact@v7.0.1 | |
| with: | |
| path: dist/*.zip | |
| archive: false | |
| if-no-files-found: error | |
| - name: Create GitHub Release | |
| if: github.event_name == 'push' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| RELEASE_VERSION: ${{ github.ref_name }} | |
| run: gh release create "$RELEASE_VERSION" "dist/ios-graal-jdk-$RELEASE_VERSION.zip" --title "$RELEASE_VERSION" |