fix: armv7 glibc version #288
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
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: 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 }} |