mirror of
https://github.com/bitsycore/skiko.git
synced 2026-10-06 23:17:27 +00:00
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>
257 lines
7.8 KiB
YAML
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
|