Files
tinyusdz/.github/workflows/linux_ci.yml
Syoyo Fujita 9422931843 Add GCC build and update Clang to v21 for ARM64 Linux CI
- Split build-arm64 into build-arm64-gcc and build-arm64-clang
- build-arm64-gcc: Uses system GCC on Ubuntu 22.04 ARM
- build-arm64-clang: Installs Clang 21 from LLVM apt repository
  (previously used system Clang 14 which is outdated)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 08:57:30 +09:00

161 lines
4.2 KiB
YAML

name: Linux
on:
push:
branches: [ dev ]
pull_request:
branches: [ dev ]
jobs:
# Disable gcc4.9 and gcc5 since its too obsolete and failed to do apt-get
## compile with oldest gcc4.9 which supports (most of)C++14
#build-gcc49:
# runs-on: ubuntu-latest
# name: Build with gcc 4.9
# steps:
# - name: Checkout
# uses: actions/checkout@v1
# - name: CmakeAndBuild
# run: |
# sudo apt-add-repository -y 'deb http://dk.archive.ubuntu.com/ubuntu/ xenial main'
# sudo apt-add-repository -y 'deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe'
# sudo apt-get update
# sudo apt-get install -y build-essential
# sudo apt-get install -y gcc-4.9 g++-4.9 gcc-4.9-multilib
# ./scripts/bootstrap-gcc-49.sh
# cd build-gcc49
# make VERBOSE=1
## compile with older gcc5
#build-gcc5:
# runs-on: ubuntu-latest
# name: Build with gcc 5
# steps:
# - name: Checkout
# uses: actions/checkout@v1
# - name: CmakeAndBuild
# run: |
# sudo apt-add-repository -y 'deb http://dk.archive.ubuntu.com/ubuntu/ xenial main'
# sudo apt-add-repository -y 'deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe'
# sudo apt-get update
# sudo apt-get install -y build-essential
# sudo apt-get install -y gcc-5 g++-5
# ./scripts/bootstrap-gcc-5.sh
# cd build-gcc5
# make VERBOSE=1
# We can now use native arm64 runner
## Cross-compile for aarch64 linux target
#build-cross-aarch64:
# runs-on: ubuntu-latest
# name: Build on cross aarch64
# steps:
# - name: Checkout
# uses: actions/checkout@v1
# - name: CmakeAndBuild
# run: |
# sudo apt-get update
# sudo apt-get install -y build-essential
# sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
# ./scripts/bootstrap-gcc-aarch64-cross-ci.sh
# cd build-cross
# make VERBOSE=1
# Build with OpenSubdiv
build-osd:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: configure
run: ./scripts/bootstrap-cmake-linux-with-osd.sh
- name: make
run: cd build && make
- name: test
run: cd build && ctest --output-on-failure
# 32bit build(Linux only)
build-32bit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: setup
run: |
sudo apt update
sudo apt-get install -y gcc-multilib g++-multilib
- name: configure
run: ./scripts/bootstrap-cmake-linux-32bit.sh
- name: make
run: cd build_m32 && make
- name: test
run: cd build_m32 && ctest --output-on-failure
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# ubuntu-latest(Ubuntu 22.04 as of 2024/01/03) has clang installed,
# so use clang
# TODO: Use libc++ for STL?
- name: configure
run: CXX=clang++ CC=clang ./scripts/bootstrap-cmake-linux.sh
- name: make
run: cd build && make
- name: tests
run: cd build && ctest --output-on-failure
build-arm64-gcc:
runs-on: ubuntu-22.04-arm
steps:
- uses: actions/checkout@v2
- name: prep
run: |
lscpu
cat /proc/cpuinfo
- name: configure
run: CXX=g++ CC=gcc ./scripts/bootstrap-cmake-linux.sh
- name: make
run: cd build && make
- name: tests
run: cd build && ctest --output-on-failure
build-arm64-clang:
runs-on: ubuntu-22.04-arm
steps:
- uses: actions/checkout@v2
- name: prep
run: |
lscpu
cat /proc/cpuinfo
# Install recent Clang from LLVM apt repository
- name: install clang-21
run: |
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
sudo add-apt-repository -y "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-21 main"
sudo apt-get update
sudo apt-get install -y clang-21
- name: configure
run: CXX=clang++-21 CC=clang-21 ./scripts/bootstrap-cmake-linux.sh
- name: make
run: cd build && make
- name: tests
run: cd build && ctest --output-on-failure