Files
clang-p2996/.gitea/workflows/build.yml
caio 7f8bc1b339
Some checks failed
Build Clang P2996 / build (push) Has been cancelled
hopefully smaller binary size
2025-11-18 03:33:32 +01:00

90 lines
2.4 KiB
YAML

name: Build Clang P2996
on:
push:
branches:
- automated-release
jobs:
build:
runs-on: self-hosted
container:
image: node:20-bullseye
env:
INSTALL_PATH: ${{ github.workspace }}/install
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install dependencies
run: |
apt-get update
apt-get install -y \
make \
python3 \
python3-pip \
zlib1g-dev \
build-essential \
lld \
clang \
wget \
libssl-dev
pip3 install PyYAML>=5.1
- name: Install CMake (from source)
run: |
CMAKE_VERSION=3.28.3
cd /tmp
wget -q https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz
tar -xzf cmake-${CMAKE_VERSION}.tar.gz
cd cmake-${CMAKE_VERSION}
./bootstrap --prefix=/usr/local
make -j$(nproc)
make install
cmake --version
- name: Configure LLVM/Clang (lean mode)
run: |
export CC=clang
export CXX=clang++
cmake -S llvm -B build \
-DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra' \
-DLLVM_TARGETS_TO_BUILD='X86' \
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \
-DLLVM_INCLUDE_TESTS=OFF \
-DLLVM_INCLUDE_EXAMPLES=OFF \
-DLLVM_INCLUDE_DOCS=OFF \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DLLVM_ENABLE_RTTI=OFF \
-DLLVM_ENABLE_EH=OFF \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DLLVM_ENABLE_LLD=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_PREFIX=${INSTALL_PATH}
- name: Build Clang
run: |
cmake --build build --parallel=$(nproc)
- name: Install
run: |
cmake --install build --prefix ${INSTALL_PATH}
- name: Strip binaries (massive size reduction)
run: |
find ${INSTALL_PATH} -type f -exec strip --strip-unneeded {} + || true
- name: Package artifact (Zstd)
run: |
apt-get update && apt-get install -y zstd
tar --use-compress-program=zstd -cf clang-p2996.tar.zst -C ${INSTALL_PATH} .
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: clang-p2996
path: clang-p2996.tar.zst