linux-qa #345
This file contains 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
# Generated by mk-workflows. | |
name: 'linux-qa' | |
on: | |
push: | |
branches-ignore: | |
- release | |
pull_request: | |
branches-ignore: | |
- release | |
schedule: | |
- cron: '0 0 * * *' | |
concurrency: | |
group: 'linux-qa-${{ github.ref }}' | |
cancel-in-progress: true | |
jobs: | |
linux-qa-stable-all-features: | |
runs-on: ubuntu-22.04 | |
container: ghcr.io/pragmatrix/rust-skia-linux:latest | |
env: | |
SKIA_DEBUG: 0 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Fix git dubious ownership errors when synchronizing Skia dependencies | |
run: git config --global --add safe.directory '*' | |
- name: Prepare Rustup | |
run: (cd /github/home && ln -s /root/.cargo) | |
- name: Update Rustup and Rust | |
run: rustup update | |
- name: Configure Rust Toolchain | |
run: rustup default stable | |
- name: Install Clippy | |
run: rustup component add clippy | |
- name: 'Install Rust target x86_64-unknown-linux-gnu' | |
shell: bash | |
run: | | |
rustup target add x86_64-unknown-linux-gnu | |
- name: 'Build skia-safe for x86_64-unknown-linux-gnu with features egl,gl,svg,textlayout,vulkan,wayland,webp,x11' | |
shell: bash | |
run: | | |
if [ "false" == "true" ]; then | |
TARGET=x86_64-unknown-linux-gnu | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=x86_64-unknown-linux-gnu26-clang | |
export CXX_${TARGET}=x86_64-unknown-linux-gnu26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=x86_64-unknown-linux-gnu26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --target x86_64-unknown-linux-gnu | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: true | |
run: | | |
cargo clippy --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --all-targets --target x86_64-unknown-linux-gnu -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: true | |
run: | | |
cargo test --all --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --all-targets --target x86_64-unknown-linux-gnu -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: true | |
run: | | |
cargo run --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --target x86_64-unknown-linux-gnu "${{ env.SKIA_STAGING_PATH }}/skia-org" --driver cpu --driver pdf --driver svg | |
- name: 'Upload skia-org example images' | |
if: true | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-x86_64-unknown-linux-gnu | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target aarch64-unknown-linux-gnu' | |
shell: bash | |
run: | | |
rustup target add aarch64-unknown-linux-gnu | |
- name: 'Build skia-safe for aarch64-unknown-linux-gnu with features egl,gl,svg,textlayout,vulkan,wayland,webp,x11' | |
shell: bash | |
run: | | |
if [ "false" == "true" ]; then | |
TARGET=aarch64-unknown-linux-gnu | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=aarch64-unknown-linux-gnu26-clang | |
export CXX_${TARGET}=aarch64-unknown-linux-gnu26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=aarch64-unknown-linux-gnu26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --target aarch64-unknown-linux-gnu | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --all-targets --target aarch64-unknown-linux-gnu -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --all-targets --target aarch64-unknown-linux-gnu -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --target aarch64-unknown-linux-gnu "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-aarch64-unknown-linux-gnu | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target aarch64-linux-android' | |
shell: bash | |
run: | | |
rustup target add aarch64-linux-android | |
- name: 'Build skia-safe for aarch64-linux-android with features gl,svg,textlayout,vulkan,webp' | |
shell: bash | |
run: | | |
if [ "true" == "true" ]; then | |
TARGET=aarch64-linux-android | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=aarch64-linux-android26-clang | |
export CXX_${TARGET}=aarch64-linux-android26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=aarch64-linux-android26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "gl,svg,textlayout,vulkan,webp" --target aarch64-linux-android | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target aarch64-linux-android -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target aarch64-linux-android -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "gl,svg,textlayout,vulkan,webp" --target aarch64-linux-android "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-aarch64-linux-android | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target x86_64-linux-android' | |
shell: bash | |
run: | | |
rustup target add x86_64-linux-android | |
- name: 'Build skia-safe for x86_64-linux-android with features gl,svg,textlayout,vulkan,webp' | |
shell: bash | |
run: | | |
if [ "true" == "true" ]; then | |
TARGET=x86_64-linux-android | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=x86_64-linux-android26-clang | |
export CXX_${TARGET}=x86_64-linux-android26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=x86_64-linux-android26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "gl,svg,textlayout,vulkan,webp" --target x86_64-linux-android | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target x86_64-linux-android -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target x86_64-linux-android -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "gl,svg,textlayout,vulkan,webp" --target x86_64-linux-android "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-x86_64-linux-android | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target i686-linux-android' | |
shell: bash | |
run: | | |
rustup target add i686-linux-android | |
- name: 'Build skia-safe for i686-linux-android with features gl,svg,textlayout,vulkan,webp' | |
shell: bash | |
run: | | |
if [ "true" == "true" ]; then | |
TARGET=i686-linux-android | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=i686-linux-android26-clang | |
export CXX_${TARGET}=i686-linux-android26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=i686-linux-android26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "gl,svg,textlayout,vulkan,webp" --target i686-linux-android | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target i686-linux-android -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target i686-linux-android -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "gl,svg,textlayout,vulkan,webp" --target i686-linux-android "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-i686-linux-android | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target wasm32-unknown-emscripten' | |
shell: bash | |
run: | | |
rustup target add wasm32-unknown-emscripten | |
- name: 'Build skia-safe for wasm32-unknown-emscripten with features gl,textlayout,vulkan,webp' | |
shell: bash | |
run: | | |
if [ "false" == "true" ]; then | |
TARGET=wasm32-unknown-emscripten | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=wasm32-unknown-emscripten26-clang | |
export CXX_${TARGET}=wasm32-unknown-emscripten26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=wasm32-unknown-emscripten26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "true" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "gl,textlayout,vulkan,webp" --target wasm32-unknown-emscripten | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "gl,textlayout,vulkan,webp" --all-targets --target wasm32-unknown-emscripten -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "gl,textlayout,vulkan,webp" --all-targets --target wasm32-unknown-emscripten -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "gl,textlayout,vulkan,webp" --target wasm32-unknown-emscripten "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-wasm32-unknown-emscripten | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
linux-qa-beta-all-features: | |
runs-on: ubuntu-22.04 | |
container: ghcr.io/pragmatrix/rust-skia-linux:latest | |
env: | |
SKIA_DEBUG: 0 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Fix git dubious ownership errors when synchronizing Skia dependencies | |
run: git config --global --add safe.directory '*' | |
- name: Prepare Rustup | |
run: (cd /github/home && ln -s /root/.cargo) | |
- name: Update Rustup and Rust | |
run: rustup update | |
- name: Configure Rust Toolchain | |
run: rustup default beta | |
- name: Install Clippy | |
run: rustup component add clippy | |
- name: 'Install Rust target x86_64-unknown-linux-gnu' | |
shell: bash | |
run: | | |
rustup target add x86_64-unknown-linux-gnu | |
- name: 'Build skia-safe for x86_64-unknown-linux-gnu with features egl,gl,svg,textlayout,vulkan,wayland,webp,x11' | |
shell: bash | |
run: | | |
if [ "false" == "true" ]; then | |
TARGET=x86_64-unknown-linux-gnu | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=x86_64-unknown-linux-gnu26-clang | |
export CXX_${TARGET}=x86_64-unknown-linux-gnu26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=x86_64-unknown-linux-gnu26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --target x86_64-unknown-linux-gnu | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: true | |
run: | | |
cargo clippy --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --all-targets --target x86_64-unknown-linux-gnu -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: true | |
run: | | |
cargo test --all --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --all-targets --target x86_64-unknown-linux-gnu -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --target x86_64-unknown-linux-gnu "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-x86_64-unknown-linux-gnu | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target aarch64-unknown-linux-gnu' | |
shell: bash | |
run: | | |
rustup target add aarch64-unknown-linux-gnu | |
- name: 'Build skia-safe for aarch64-unknown-linux-gnu with features egl,gl,svg,textlayout,vulkan,wayland,webp,x11' | |
shell: bash | |
run: | | |
if [ "false" == "true" ]; then | |
TARGET=aarch64-unknown-linux-gnu | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=aarch64-unknown-linux-gnu26-clang | |
export CXX_${TARGET}=aarch64-unknown-linux-gnu26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=aarch64-unknown-linux-gnu26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --target aarch64-unknown-linux-gnu | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --all-targets --target aarch64-unknown-linux-gnu -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --all-targets --target aarch64-unknown-linux-gnu -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "egl,gl,svg,textlayout,vulkan,wayland,webp,x11" --target aarch64-unknown-linux-gnu "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-aarch64-unknown-linux-gnu | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target aarch64-linux-android' | |
shell: bash | |
run: | | |
rustup target add aarch64-linux-android | |
- name: 'Build skia-safe for aarch64-linux-android with features gl,svg,textlayout,vulkan,webp' | |
shell: bash | |
run: | | |
if [ "true" == "true" ]; then | |
TARGET=aarch64-linux-android | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=aarch64-linux-android26-clang | |
export CXX_${TARGET}=aarch64-linux-android26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=aarch64-linux-android26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "gl,svg,textlayout,vulkan,webp" --target aarch64-linux-android | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target aarch64-linux-android -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target aarch64-linux-android -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "gl,svg,textlayout,vulkan,webp" --target aarch64-linux-android "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-aarch64-linux-android | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target x86_64-linux-android' | |
shell: bash | |
run: | | |
rustup target add x86_64-linux-android | |
- name: 'Build skia-safe for x86_64-linux-android with features gl,svg,textlayout,vulkan,webp' | |
shell: bash | |
run: | | |
if [ "true" == "true" ]; then | |
TARGET=x86_64-linux-android | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=x86_64-linux-android26-clang | |
export CXX_${TARGET}=x86_64-linux-android26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=x86_64-linux-android26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "gl,svg,textlayout,vulkan,webp" --target x86_64-linux-android | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target x86_64-linux-android -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target x86_64-linux-android -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "gl,svg,textlayout,vulkan,webp" --target x86_64-linux-android "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-x86_64-linux-android | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target i686-linux-android' | |
shell: bash | |
run: | | |
rustup target add i686-linux-android | |
- name: 'Build skia-safe for i686-linux-android with features gl,svg,textlayout,vulkan,webp' | |
shell: bash | |
run: | | |
if [ "true" == "true" ]; then | |
TARGET=i686-linux-android | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=i686-linux-android26-clang | |
export CXX_${TARGET}=i686-linux-android26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=i686-linux-android26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "false" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "gl,svg,textlayout,vulkan,webp" --target i686-linux-android | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target i686-linux-android -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "gl,svg,textlayout,vulkan,webp" --all-targets --target i686-linux-android -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "gl,svg,textlayout,vulkan,webp" --target i686-linux-android "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-i686-linux-android | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true | |
- name: 'Install Rust target wasm32-unknown-emscripten' | |
shell: bash | |
run: | | |
rustup target add wasm32-unknown-emscripten | |
- name: 'Build skia-safe for wasm32-unknown-emscripten with features gl,textlayout,vulkan,webp' | |
shell: bash | |
run: | | |
if [ "false" == "true" ]; then | |
TARGET=wasm32-unknown-emscripten | |
TARGET=${TARGET//-/_} | |
export CC_${TARGET}=wasm32-unknown-emscripten26-clang | |
export CXX_${TARGET}=wasm32-unknown-emscripten26-clang++ | |
export AR_${TARGET}=llvm-ar | |
TARGET_UPPERCASE=`echo "${TARGET}" | tr [a-z] [A-Z]` | |
export CARGO_TARGET_${TARGET_UPPERCASE}_LINKER=wasm32-unknown-emscripten26-clang | |
echo "Set CC, CXX, and CARGO_LINKER target specific environment variables for Android" | |
fi | |
if [ "true" == "true" ]; then | |
source /emsdk/emsdk_env.sh | |
fi | |
cargo clean | |
cargo build -p skia-safe --release --features "gl,textlayout,vulkan,webp" --target wasm32-unknown-emscripten | |
echo "SKIA_BINARIES_TAG=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/tag.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_BINARIES_KEY=$(cat "${BUILD_ARTIFACTSTAGINGDIRECTORY}/skia-binaries/key.txt")" >> ${GITHUB_ENV} | |
echo "SKIA_STAGING_PATH=${BUILD_ARTIFACTSTAGINGDIRECTORY}" >> ${GITHUB_ENV} | |
env: | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ runner.temp }} | |
EMCC_CFLAGS: "-s ERROR_ON_UNDEFINED_SYMBOLS=0 -s MAX_WEBGL_VERSION=2" | |
- name: 'Run Clippy' | |
shell: bash | |
if: false | |
run: | | |
cargo clippy --release --features "gl,textlayout,vulkan,webp" --all-targets --target wasm32-unknown-emscripten -- -D warnings | |
- name: 'Test all workspace projects' | |
shell: bash | |
if: false | |
run: | | |
cargo test --all --release --features "gl,textlayout,vulkan,webp" --all-targets --target wasm32-unknown-emscripten -- --nocapture | |
- name: 'Generate skia-org example images' | |
shell: bash | |
if: false | |
run: | | |
cargo run --release --features "gl,textlayout,vulkan,webp" --target wasm32-unknown-emscripten "${{ env.SKIA_STAGING_PATH }}/skia-org" | |
- name: 'Upload skia-org example images' | |
if: false | |
uses: actions/upload-artifact@v3.1.1 | |
with: | |
name: skia-org-images-wasm32-unknown-emscripten | |
path: ${{ env.SKIA_STAGING_PATH }}/skia-org | |
- name: 'Compress binaries' | |
if: false | |
uses: a7ul/tar-action@v1.1.2 | |
with: | |
command: c | |
cwd: '${{ env.SKIA_STAGING_PATH }}' | |
files: 'skia-binaries' | |
outPath: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
- name: 'Release binaries' | |
if: false | |
uses: pragmatrix/release-action@v1.11.1-rs | |
with: | |
owner: rust-skia | |
repo: skia-binaries | |
allowUpdates: true | |
replacesArtifacts: true | |
tag: '${{ env.SKIA_BINARIES_TAG }}' | |
artifacts: '${{ runner.temp }}/skia-binaries-${{ env.SKIA_BINARIES_KEY }}.tar.gz' | |
artifactErrorsFailBuild: true | |
token: ${{ secrets.RUST_SKIA_RELEASE_TOKEN }} | |
prerelease: true |