Skip to content

fix: armv7 glibc version #289

fix: armv7 glibc version

fix: armv7 glibc version #289

Workflow file for this run

name: Build skia
on:
push:
branches:
- release
tags-ignore:
- '**'
env:
MACOSX_DEPLOYMENT_TARGET: '10.13'
jobs:
build:
if: "!contains(github.event.head_commit.message, 'skip skia')"
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
name: stable - ${{ matrix.os }} - build skia
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: List llvm dir
if: matrix.os == 'windows-latest'
run: ls -R "C:\Program Files\LLVM"
shell: bash
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- uses: actions/setup-python@v5
with:
python-version: '3.x'
architecture: 'x64'
- name: Set env
run: echo "${PWD}/depot_tools" >> $GITHUB_PATH
shell: bash
- name: Install tools on macOS
run: brew install ninja
if: matrix.os == 'macos-latest'
- name: Install tools on Windows
if: matrix.os == 'windows-latest'
run: |
choco install llvm ninja -y
choco upgrade llvm
pip install certifi
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: matrix.os == 'ubuntu-latest'
with:
registry: ghcr.io
username: ${{ secrets.GH_CONTAINER_UNAME }}
password: ${{ secrets.GH_TOKEN }}
- name: Sync deps on host
run: python ./tools/git-sync-deps
if: matrix.os == 'ubuntu-latest'
working-directory: skia
- name: Compile skia
if: matrix.os == 'ubuntu-latest'
run: |
docker pull ghcr.io/brooooooklyn/canvas/ubuntu-builder:jammy
docker tag ghcr.io/brooooooklyn/canvas/ubuntu-builder:jammy builder
docker run --user "$(id -u):$(id -g)" -e PYTHONHTTPSVERIFY=0 -e SKIP_SYNC_SK_DEPS=0 --rm -v $(pwd):/canvas -w /canvas builder node ./scripts/build-skia.js
- name: Compile skia
if: matrix.os == 'macos-latest'
env:
PYTHONHTTPSVERIFY: 0
run: |
clang --version
node ./scripts/build-skia.js --target=x86_64-apple-darwin
- name: Compile skia
shell: powershell
if: matrix.os == 'windows-latest'
env:
PYTHONHTTPSVERIFY: 0
run: node ./scripts/build-skia.js
- name: Install dependencies
run: yarn install --immutable --mode=skip-build
- name: Upload release
run: node ./scripts/release-skia-binary.mjs --upload
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-apple-silicon:
if: "!contains(github.event.head_commit.message, 'skip skia')"
name: stable - apple-silicon - build skia
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- uses: actions/setup-python@v5
with:
python-version: '3.x'
architecture: 'x64'
- name: Set env
run: echo "${PWD}/depot_tools" >> $GITHUB_PATH
shell: bash
- name: Install tools on macOS
run: brew install ninja
- name: Compile skia
run: |
clang --version
node ./scripts/build-skia.js --target=aarch64-apple-darwin
env:
MACOSX_DEPLOYMENT_TARGET: '11.0'
- name: Install dependencies
run: yarn install --immutable --mode=skip-build
- name: Upload release
run: node ./scripts/release-skia-binary.mjs --upload --target=aarch64-apple-darwin
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-x64-linux-musl:
if: "!contains(github.event.head_commit.message, 'skip skia')"
name: stable - linux-x64-musl - build skia
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_CONTAINER_UNAME }}
password: ${{ secrets.GH_TOKEN }}
- name: Compile skia
run: |
docker pull ghcr.io/brooooooklyn/canvas/musl-builder:lts
docker tag ghcr.io/brooooooklyn/canvas/musl-builder:lts builder
docker run --rm -v $(pwd):/canvas -w /canvas builder sh -c "apk add libc++-dev libc++-static && rm /usr/lib/libc++.so /usr/lib/libc++.so.1 /usr/lib/libc++.so.1.0 /usr/lib/libc++abi.so /usr/lib/libc++abi.so.1 /usr/lib/libc++abi.so.1.0 && node ./scripts/build-skia.js"
env:
PYTHONHTTPSVERIFY: 0
- name: Install dependencies
run: yarn install --immutable --mode=skip-build
- name: Upload release
run: node ./scripts/release-skia-binary.mjs --upload --target=x86_64-unknown-linux-musl
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-aarch64-linux-gnu:
if: "!contains(github.event.head_commit.message, 'skip skia')"
name: stable - aarch64-linux-gnu - build skia
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- uses: actions/setup-python@v5
with:
python-version: '3.x'
architecture: 'x64'
- name: Sync deps on host
run: python ./tools/git-sync-deps
working-directory: skia
- name: Compile skia
run: |
docker pull ghcr.io/brooooooklyn/canvas/ubuntu-builder:jammy-aarch64
docker tag ghcr.io/brooooooklyn/canvas/ubuntu-builder:jammy-aarch64 builder
docker run --user "$(id -u):$(id -g)" -e SKIP_SYNC_SK_DEPS=0 --rm -v $(pwd):/canvas -w /canvas builder node ./scripts/build-skia.js --target=aarch64-unknown-linux-gnu
- name: Install dependencies
run: yarn install --immutable --mode=skip-build
- name: Upload release
run: node ./scripts/release-skia-binary.mjs --upload --target=aarch64-unknown-linux-gnu
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-aarch64-linux-musl:
if: "!contains(github.event.head_commit.message, 'skip skia')"
name: stable - linux-aarch64-musl - build skia
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_CONTAINER_UNAME }}
password: ${{ secrets.GH_TOKEN }}
- name: Install libc++-dev-aarch64
run: |
mkdir -p aarch64-linux-musl-cross/llvm/include
mkdir -p aarch64-linux-musl-cross/llvm/lib
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker run --platform=linux/arm64 --rm -v $(pwd)/aarch64-linux-musl-cross:/aarch64-linux-musl-cross -w /canvas node:18-alpine sh -c "apk add libc++-dev libc++-static && cp -r /usr/include/c++ /aarch64-linux-musl-cross/llvm/include && cp /usr/lib/libc++.a /aarch64-linux-musl-cross/llvm/lib/libc++.a && cp /usr/lib/libc++abi.a /aarch64-linux-musl-cross/llvm/lib/libc++abi.a"
- name: Compile skia
run: |
docker pull ghcr.io/brooooooklyn/canvas/musl-builder:lts
docker tag ghcr.io/brooooooklyn/canvas/musl-builder:lts builder
docker run --rm -v $(pwd):/canvas -w /canvas builder sh -c "cp -r /canvas/aarch64-linux-musl-cross/llvm/include/c++ /aarch64-linux-musl-cross/include && cp /canvas/aarch64-linux-musl-cross/llvm/lib/* /aarch64-linux-musl-cross/lib && node ./scripts/build-skia.js --target=aarch64-unknown-linux-musl"
env:
PYTHONHTTPSVERIFY: 0
- name: Install dependencies
run: yarn install --immutable --mode=skip-build
- name: Upload release
run: node ./scripts/release-skia-binary.mjs --upload --target=aarch64-unknown-linux-musl
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-armv7-linux-gnu:
if: "!contains(github.event.head_commit.message, 'skip skia')"
name: stable - armv7-linux - build skia
runs-on: ubuntu-latest
container:
image: debian:buster
steps:
- name: Setup tools
run: |
apt-get update
apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libatomic1-armhf-cross git build-essential cmake ninja-build wget curl python3
ln -s /usr/bin/python3 /usr/bin/python
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Compile skia
run: node ./scripts/build-skia.js --target=armv7-unknown-linux-gnueabihf
- name: Install dependencies
run: |
corepack enable
yarn install --immutable --mode=skip-build
- name: Upload release
run: |
git config --global --add safe.directory "$(pwd)"
git config --global --add safe.directory "$(pwd)/skia"
node ./scripts/release-skia-binary.mjs --upload --target=armv7-unknown-linux-gnueabihf
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-aarch64-linux-android:
if: "!contains(github.event.head_commit.message, 'skip skia')"
name: stable - aarch64-linux-android - build skia
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- uses: actions/setup-python@v5
with:
python-version: '3.x'
architecture: 'x64'
- name: Set env
run: echo "${PWD}/depot_tools" >> $GITHUB_PATH
shell: bash
- name: Install build tools
run: |
sudo apt-get update
sudo apt-get install ninja-build -y
- name: Compile skia
run: node ./scripts/build-skia.js --target=aarch64-linux-android
- name: Install dependencies
run: yarn install --immutable --mode=skip-build
- name: Upload release
run: node ./scripts/release-skia-binary.mjs --upload --target=aarch64-linux-android
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-riscv64-linux-gnu:
if: "!contains(github.event.head_commit.message, 'skip skia')"
name: stable - riscv64-linux-gnu - build skia
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'yarn'
- uses: actions/setup-python@v5
with:
python-version: '3.x'
architecture: 'x64'
- name: Set env
run: echo "${PWD}/depot_tools" >> $GITHUB_PATH
shell: bash
- name: Install cross compile tools
run: |
sudo apt-get update
sudo apt-get install ninja-build gcc-riscv64-linux-gnu g++-riscv64-linux-gnu -y
- name: Compile skia
run: node ./scripts/build-skia.js --target=riscv64gc-unknown-linux-gnu
env:
CC: riscv64-linux-gnu-gcc
CXX: riscv64-linux-gnu-g++
- name: Install dependencies
run: yarn install --immutable --mode=skip-build
- name: Upload release
run: node ./scripts/release-skia-binary.mjs --upload --target=riscv64gc-unknown-linux-gnu
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}