Files
skiko/.github/workflows/publish-dry-run.yml
Hubert BłaszczykandIvan Matkov 74684d4edc Extract skottie into separate module (#1213)
This PR includes:

- Skottie extension module for each target
- Exposing some internal parts of skiko so that they can be used in
extension modules

Required external changes :

- Compile Skia static libraries with `visibility=default` instead of
`hidden`. I found it difficult to make symbols tagged as `hidden`
visible again. Going from `visible` to `hidden` was much more
straightforward
- Each static library that Skia produces is self-contained and thus,
might have Skia core object files inside. This means we have to remove
such files from Skottie during the Skia build

Closes [SKIKO-1146](https://youtrack.jetbrains.com/issue/SKIKO-1146)

---------

Co-authored-by: Ivan Matkov <matkov.ivan@gmail.com>
2026-07-14 14:01:48 +02:00

257 lines
7.8 KiB
YAML

name: Skiko Publish Dry Run
on:
workflow_call: # Allow being called by other workflows
jobs:
Android:
name: 'Android Publish Dry Run'
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
name: 'Check out code'
- uses: ./.github/actions/setup-prerequisites
name: 'Setup Prerequisites'
- uses: ./.github/actions/docker-skiko-run
name: 'Publish Maven Local'
with:
image_name: linux-compat
command: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.android.enabled=true \
publishToMavenLocal
- uses: ./.github/actions/docker-skiko-run
name: 'Check Android Sample'
with:
image_name: linux-compat
working_directory: samples/SkiaAndroidSample
command: |
./gradlew --no-daemon --stacktrace \
packageRelease
Web:
name: 'Web Publish Dry Run'
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
name: 'Check out code'
- uses: ./.github/actions/setup-prerequisites
name: 'Setup Prerequisites'
- uses: actions/setup-java@v4
name: 'Setup JDK 21'
with:
java-version: '21'
distribution: 'corretto'
- uses: ./.github/actions/docker-skiko-run
name: 'Publish Maven Local'
with:
image_name: linux-emscripten-amd64
command: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.wasm.enabled=true \
publishToMavenLocal
- uses: actions/setup-node@v4
name: 'Setup Node.js'
with:
node-version: 22
- shell: bash
name: 'Setup Playwright'
run: |
npm install --prefix "${RUNNER_TEMP}/skiko-playwright" @playwright/test@1.56.1
"${RUNNER_TEMP}/skiko-playwright/node_modules/.bin/playwright" install --with-deps chromium
- shell: bash
name: 'Check Skiko Extensions Web Sample'
env:
GRADLE_USER_HOME: ${{ runner.temp }}/skiko-extensions-gradle
NODE_PATH: ${{ runner.temp }}/skiko-playwright/node_modules
PLAYWRIGHT_BIN: ${{ runner.temp }}/skiko-playwright/node_modules/.bin/playwright
run: |
bash samples/SkikoExtensionsSample/scripts/check-web-sample.sh
Linux:
name: 'Linux x64 Publish Dry Run'
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
name: 'Check out code'
- uses: ./.github/actions/setup-prerequisites
name: 'Setup Prerequisites'
- uses: ./.github/actions/docker-skiko-run
name: 'Publish x64 Maven Local'
with:
image_name: linux-compat
command: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.native.enabled=true \
-Pskiko.awt.enabled=true \
-Pskiko.arch=x64 \
publishToMavenLocal
- uses: ./.github/actions/docker-skiko-run
name: 'Publish Native Maven Local'
with:
image_name: linux-amd64
command: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.native.enabled=true \
-Pskiko.awt.enabled=false \
publishLinuxArm64PublicationToMavenLocal \
publishLinuxX64PublicationToMavenLocal
- uses: ./.github/actions/docker-skiko-run
name: 'Check AWT Sample'
with:
image_name: linux-compat
command: |
./gradlew --no-daemon --stacktrace \
:SkiaAwtSample:installDist
- uses: ./.github/actions/docker-skiko-run
name: 'Check Skiko Extensions Sample'
with:
image_name: linux-compat
virtual-display: true
command: |
./gradlew -p samples/SkikoExtensionsSample --no-daemon --stacktrace \
:runAwt --args=--exit-after-ms=5000
LinuxArm:
name: 'Linux arm64 Publish Dry Run'
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
name: 'Check out code'
- uses: ./.github/actions/setup-prerequisites
name: 'Setup Prerequisites'
# We run it on a separate runner because cross-compilation on x64 fails
- uses: ./.github/actions/docker-skiko-run
name: 'Publish AWT Runtime arm64 Maven Local'
with:
image_name: linux-compat
command: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.awt.enabled=true \
-Pskiko.arch=arm64 \
publishSkikoJvmRuntimeLinuxArm64PublicationToMavenLocal
macOS:
name: 'macOS Publish Dry Run'
runs-on: macos-15
steps:
- uses: actions/checkout@v4
name: 'Check out code'
- uses: actions/setup-java@v4
name: 'Setup JDK 21'
with:
java-version: '21'
distribution: 'corretto'
- uses: ./.github/actions/setup-prerequisites
name: 'Setup Prerequisites'
- shell: bash
name: 'Publish arm64 Maven Local'
run: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.native.enabled=true \
-Pskiko.awt.enabled=true \
-Pskiko.arch=arm64 \
publishToMavenLocal
# Build x64 separately (arm64 is built in publishToMavenLocal)
- shell: bash
name: 'Publish AWT Runtime x64 Maven Local'
run: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.awt.enabled=true \
-Pskiko.arch=x64 \
publishSkikoJvmRuntimeMacosX64PublicationToMavenLocal
- shell: bash
name: 'Check AWT Sample'
run: |
./gradlew --no-daemon --stacktrace \
:SkiaAwtSample:installDist
- shell: bash
name: 'Check Skiko Extensions Sample'
run: |
./gradlew -p samples/SkikoExtensionsSample --no-daemon --stacktrace \
:runAwt --args=--exit-after-ms=5000
- shell: bash
name: 'Check Skiko Extensions Apple Native Sample'
run: |
./gradlew -p samples/SkikoExtensionsSample --no-daemon --stacktrace \
-Psample.exitAfterMs=5000 \
:runNative \
:linkDebugExecutableMacosArm64 \
:linkDebugExecutableMacosX64 \
:linkDebugExecutableIosArm64 \
:linkDebugExecutableIosSimulatorArm64 \
:linkDebugExecutableIosX64
Windows:
name: 'Windows Publish Dry Run'
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
name: 'Check out code'
- uses: microsoft/setup-msbuild@v1
- uses: ilammy/msvc-dev-cmd@v1
- uses: actions/setup-java@v4
name: 'Setup JDK 21'
with:
java-version: '21'
distribution: 'corretto'
- uses: ./.github/actions/setup-prerequisites
name: 'Setup Prerequisites'
- shell: bash
name: 'Publish x64 Maven Local'
run: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.native.enabled=true \
-Pskiko.awt.enabled=true \
-Pskiko.arch=x64 \
publishToMavenLocal
# Build Arm64 separately (x64 is built in publishToMavenLocal)
- shell: bash
name: 'Publish AWT Runtime arm64 Maven Local'
run: |
./gradlew -p skiko --no-daemon --stacktrace \
-Pskiko.awt.enabled=true \
-Pskiko.arch=arm64 \
publishSkikoJvmRuntimeWindowsArm64PublicationToMavenLocal
- shell: bash
name: 'Check AWT Sample'
run: |
./gradlew --no-daemon --stacktrace \
:SkiaAwtSample:installDist
- shell: bash
name: 'Check Skiko Extensions Sample'
run: |
./gradlew -p samples/SkikoExtensionsSample --no-daemon --stacktrace \
:runAwt --args=--exit-after-ms=5000