add new test to exceptions #3
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
| # Do not modify! | |
| # This file was generated from a template using https://github.com/StefMa/pkl-gha | |
| name: Build | |
| 'on': | |
| push: | |
| branches-ignore: | |
| - main | |
| - release/* | |
| tags-ignore: | |
| - '**' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: false | |
| permissions: | |
| contents: read | |
| jobs: | |
| gradle-check: | |
| runs-on: ubuntu-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: check | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true check | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-gradle-check | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-gradle-check | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| gradle-check-windows: | |
| runs-on: windows-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| JAVA_HOME: /jdk | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: check | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true check | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-gradle-check-windows | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-gradle-check-windows | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| bench: | |
| runs-on: ubuntu-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: bench:jmh | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true bench:jmh | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-bench | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-bench | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| gradle-compatibility: | |
| runs-on: ubuntu-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: :pkl-gradle:build :pkl-gradle:compatibilityTestReleases | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true :pkl-gradle:build :pkl-gradle:compatibilityTestReleases | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-gradle-compatibility | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-gradle-compatibility | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| java-executables-snapshot: | |
| runs-on: ubuntu-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - uses: actions/checkout@v5 | |
| - name: gradle build java executables | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-doc:build pkl-cli:build pkl-codegen-java:build pkl-codegen-kotlin:build | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-java | |
| path: '*/build/executable/**/*' | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-java-executables-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-java-executables-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-cli-macOS-amd64-snapshot: | |
| if: github.repository_owner == 'apple' | |
| runs-on: | |
| - self-hosted | |
| - macos | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-cli:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-cli-macOS-amd64 | |
| path: pkl-cli*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-cli-macOS-amd64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-cli-macOS-amd64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-cli-linux-amd64-snapshot: | |
| runs-on: ubuntu-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-cli:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-cli-linux-amd64 | |
| path: pkl-cli*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-cli-linux-amd64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-cli-linux-amd64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-cli-macOS-aarch64-snapshot: | |
| if: github.repository_owner == 'apple' | |
| runs-on: | |
| - self-hosted | |
| - macos | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: aarch64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-cli:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-cli-macOS-aarch64 | |
| path: pkl-cli*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-cli-macOS-aarch64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-cli-macOS-aarch64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-cli-linux-aarch64-snapshot: | |
| runs-on: ubuntu-24.04-arm | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: aarch64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-cli:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-cli-linux-aarch64 | |
| path: pkl-cli*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-cli-linux-aarch64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-cli-linux-aarch64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-cli-alpine-linux-amd64-snapshot: | |
| runs-on: ubuntu-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: Install musl and zlib | |
| run: | | |
| set -e | |
| mkdir -p ~/staticdeps/ | |
| ZLIB_VERSION="1.2.13" | |
| MUSL_VERSION="1.2.5" | |
| # install zlib | |
| if [[ ! -f ~/staticdeps/include/zlib.h ]]; then | |
| # Download zlib tarball and signature | |
| curl -Lf "https://github.com/madler/zlib/releases/download/v${ZLIB_VERSION}/zlib-${ZLIB_VERSION}.tar.gz" -o /tmp/zlib.tar.gz | |
| curl -Lf "https://github.com/madler/zlib/releases/download/v${ZLIB_VERSION}/zlib-${ZLIB_VERSION}.tar.gz.asc" -o /tmp/zlib.tar.gz.asc | |
| # Import zlib GPG key | |
| gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 5ED46A6721D365587791E2AA783FCD8E58BCAFBA | |
| # Verify GPG signature | |
| echo "Verifying zlib GPG signature..." | |
| gpg --verify /tmp/zlib.tar.gz.asc /tmp/zlib.tar.gz | |
| mkdir -p "/tmp/dep_zlib-${ZLIB_VERSION}" | |
| cd "/tmp/dep_zlib-${ZLIB_VERSION}" | |
| # shellcheck disable=SC2002 | |
| cat /tmp/zlib.tar.gz | tar --strip-components=1 -xzC . | |
| echo "zlib-${ZLIB_VERSION}: configure..." | |
| ./configure --static --prefix="$HOME"/staticdeps > /dev/null | |
| echo "zlib-${ZLIB_VERSION}: make..." | |
| make -s -j4 | |
| echo "zlib-${ZLIB_VERSION}: make install..." | |
| make -s install | |
| rm -rf /tmp/dep_zlib-${ZLIB_VERSION} | |
| fi | |
| # install musl | |
| if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then | |
| # Download musl tarball and signature | |
| curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz | |
| curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc | |
| # Import musl GPG key | |
| gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F | |
| # Verify GPG signature | |
| echo "Verifying musl GPG signature..." | |
| gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz | |
| mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" | |
| cd "/tmp/dep_musl-${MUSL_VERSION}" | |
| # shellcheck disable=SC2002 | |
| cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . | |
| echo "musl-${MUSL_VERSION}: configure..." | |
| ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null | |
| echo "musl-${MUSL_VERSION}: make..." | |
| make -s -j4 | |
| echo "musl-${MUSL_VERSION}: make install..." | |
| make -s install | |
| rm -rf "/tmp/dep_musl-${MUSL_VERSION}" | |
| # native-image expects to find an executable at this path. | |
| ln -s ~/staticdeps/bin/musl-gcc ~/staticdeps/bin/x86_64-linux-musl-gcc | |
| fi | |
| echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH" | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-cli:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-cli-alpine-linux-amd64 | |
| path: pkl-cli*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-cli-alpine-linux-amd64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-cli-alpine-linux-amd64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-cli-windows-amd64-snapshot: | |
| runs-on: windows-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| JAVA_HOME: /jdk | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-cli:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-cli-windows-amd64 | |
| path: pkl-cli*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-cli-windows-amd64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-cli-windows-amd64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-doc-macOS-amd64-snapshot: | |
| if: github.repository_owner == 'apple' | |
| runs-on: | |
| - self-hosted | |
| - macos | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true -Dpkl.targetArch=amd64 -Dpkl.native--native-compiler-path=${{ github.workspace }}/.github/scripts/cc_macos_amd64.sh pkl-doc:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-doc-macOS-amd64 | |
| path: pkl-doc*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-doc-macOS-amd64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-doc-macOS-amd64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-doc-linux-amd64-snapshot: | |
| runs-on: ubuntu-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-doc:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-doc-linux-amd64 | |
| path: pkl-doc*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-doc-linux-amd64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-doc-linux-amd64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-doc-macOS-aarch64-snapshot: | |
| if: github.repository_owner == 'apple' | |
| runs-on: | |
| - self-hosted | |
| - macos | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: aarch64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-doc:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-doc-macOS-aarch64 | |
| path: pkl-doc*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-doc-macOS-aarch64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-doc-macOS-aarch64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-doc-linux-aarch64-snapshot: | |
| runs-on: ubuntu-24.04-arm | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: aarch64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-doc:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-doc-linux-aarch64 | |
| path: pkl-doc*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-doc-linux-aarch64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-doc-linux-aarch64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-doc-alpine-linux-amd64-snapshot: | |
| runs-on: ubuntu-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: Install musl and zlib | |
| run: | | |
| set -e | |
| mkdir -p ~/staticdeps/ | |
| ZLIB_VERSION="1.2.13" | |
| MUSL_VERSION="1.2.5" | |
| # install zlib | |
| if [[ ! -f ~/staticdeps/include/zlib.h ]]; then | |
| # Download zlib tarball and signature | |
| curl -Lf "https://github.com/madler/zlib/releases/download/v${ZLIB_VERSION}/zlib-${ZLIB_VERSION}.tar.gz" -o /tmp/zlib.tar.gz | |
| curl -Lf "https://github.com/madler/zlib/releases/download/v${ZLIB_VERSION}/zlib-${ZLIB_VERSION}.tar.gz.asc" -o /tmp/zlib.tar.gz.asc | |
| # Import zlib GPG key | |
| gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 5ED46A6721D365587791E2AA783FCD8E58BCAFBA | |
| # Verify GPG signature | |
| echo "Verifying zlib GPG signature..." | |
| gpg --verify /tmp/zlib.tar.gz.asc /tmp/zlib.tar.gz | |
| mkdir -p "/tmp/dep_zlib-${ZLIB_VERSION}" | |
| cd "/tmp/dep_zlib-${ZLIB_VERSION}" | |
| # shellcheck disable=SC2002 | |
| cat /tmp/zlib.tar.gz | tar --strip-components=1 -xzC . | |
| echo "zlib-${ZLIB_VERSION}: configure..." | |
| ./configure --static --prefix="$HOME"/staticdeps > /dev/null | |
| echo "zlib-${ZLIB_VERSION}: make..." | |
| make -s -j4 | |
| echo "zlib-${ZLIB_VERSION}: make install..." | |
| make -s install | |
| rm -rf /tmp/dep_zlib-${ZLIB_VERSION} | |
| fi | |
| # install musl | |
| if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then | |
| # Download musl tarball and signature | |
| curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz" -o /tmp/musl.tar.gz | |
| curl -Lf "https://musl.libc.org/releases/musl-${MUSL_VERSION}.tar.gz.asc" -o /tmp/musl.tar.gz.asc | |
| # Import musl GPG key | |
| gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 836489290BB6B70F99FFDA0556BCDB593020450F | |
| # Verify GPG signature | |
| echo "Verifying musl GPG signature..." | |
| gpg --verify /tmp/musl.tar.gz.asc /tmp/musl.tar.gz | |
| mkdir -p "/tmp/dep_musl-${MUSL_VERSION}" | |
| cd "/tmp/dep_musl-${MUSL_VERSION}" | |
| # shellcheck disable=SC2002 | |
| cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . | |
| echo "musl-${MUSL_VERSION}: configure..." | |
| ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null | |
| echo "musl-${MUSL_VERSION}: make..." | |
| make -s -j4 | |
| echo "musl-${MUSL_VERSION}: make install..." | |
| make -s install | |
| rm -rf "/tmp/dep_musl-${MUSL_VERSION}" | |
| # native-image expects to find an executable at this path. | |
| ln -s ~/staticdeps/bin/musl-gcc ~/staticdeps/bin/x86_64-linux-musl-gcc | |
| fi | |
| echo "${HOME}/staticdeps/bin" >> "$GITHUB_PATH" | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true -Dpkl.musl=true pkl-doc:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-doc-alpine-linux-amd64 | |
| path: pkl-doc*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-doc-alpine-linux-amd64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-doc-alpine-linux-amd64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| pkl-doc-windows-amd64-snapshot: | |
| runs-on: windows-latest | |
| env: | |
| LANG: en_US.UTF-8 | |
| JAVA_HOME: /jdk | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: temurin | |
| architecture: x64 | |
| cache: gradle | |
| - name: gradle buildNative | |
| shell: bash | |
| run: ./gradlew --info --stacktrace -DpklMultiJdkTesting=true pkl-doc:buildNative | |
| - name: Upload executable artifacts | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: executable-pkl-doc-windows-amd64 | |
| path: pkl-doc*/build/executable/**/* | |
| - name: Upload Test Result XML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-xml-pkl-doc-windows-amd64-snapshot | |
| path: '**/build/test-results/**/*.xml' | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-pkl-doc-windows-amd64-snapshot | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore | |
| publish-test-results: | |
| if: '!failure() && !cancelled()' | |
| needs: | |
| - gradle-check | |
| - gradle-check-windows | |
| - bench | |
| - gradle-compatibility | |
| - java-executables-snapshot | |
| - pkl-cli-macOS-amd64-snapshot | |
| - pkl-cli-linux-amd64-snapshot | |
| - pkl-cli-macOS-aarch64-snapshot | |
| - pkl-cli-linux-aarch64-snapshot | |
| - pkl-cli-alpine-linux-amd64-snapshot | |
| - pkl-cli-windows-amd64-snapshot | |
| - pkl-doc-macOS-amd64-snapshot | |
| - pkl-doc-linux-amd64-snapshot | |
| - pkl-doc-macOS-aarch64-snapshot | |
| - pkl-doc-linux-aarch64-snapshot | |
| - pkl-doc-alpine-linux-amd64-snapshot | |
| - pkl-doc-windows-amd64-snapshot | |
| permissions: | |
| checks: write | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@v6 | |
| with: | |
| pattern: test-results-xml-* | |
| - name: Publish test results | |
| if: '!cancelled()' | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| with: | |
| comment_mode: 'off' | |
| files: test-results-xml-*/**/*.xml | |
| - name: Upload Test Result HTML | |
| if: '!cancelled()' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: test-results-html-publish-test-results | |
| path: '**/build/reports/tests/**/*' | |
| if-no-files-found: ignore |