Skip to content

[CI] Another try to make Ninja alive [12]... #17

[CI] Another try to make Ninja alive [12]...

[CI] Another try to make Ninja alive [12]... #17

Workflow file for this run

name: Build
on:
push:
branches:
- "*"
tags:
- "*"
jobs:
build_rg3:
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config:
- { name: "Windows MSVC", os: windows-latest, cc: "cl", cxx: "cl", boost_toolset: msvc }
steps:
# Download repository with submodules
- name: Checkout
uses: actions/checkout@v3
with:
submodules: "recursive"
# Setup msbuild
- name: Add msbuild to PATH
uses: microsoft/[email protected]
with:
msbuild-architecture: x64
# Setup Python of specific version
- name: Install Python
id: install-python3
uses: actions/setup-python@v5
with:
python-version: '3.10'
# Check cache of Boost & LLVM - take if exists
# Build Boost 1.81.0
- name: Install Boost 1.81.0
uses: MarkusJx/[email protected]
id: install-boost
with:
boost_version: 1.81.0
toolset: msvc
link: static
# Try to locate llvm binaries (I'm not sure, but this list should be enough to precache all required things)
- name: Cache LLVM binaries
id: cache-llvm-binaries
uses: actions/cache@v3
with:
key: "${{ runner.os }}-build-llvmorg-16.0.4"
path: |
llvm_repo/cmake
llvm_repo/build/cmake
llvm_repo/build/MinSizeRel
llvm_repo/build/include
llvm_repo/build/lib
llvm_repo/build/tools/clang/include
llvm_repo/llvm
llvm_repo/clang
# Checkout & Build LLVM (On cache miss - build from sources!)
- name: Checkout LLVM
if: steps.cache-llvm-binaries.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
submodules: "recursive"
repository: "llvm/llvm-project"
ref: "llvmorg-16.0.4"
path: "llvm_repo"
# Build LLVM (very slow process, lmao) TODO: Add support of Ninja build system!!!
- name: Build LLVM
if: steps.cache-llvm-binaries.outputs.cache-hit != 'true'
working-directory: llvm_repo
run: |
mkdir build
cmake -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_BUILD_TYPE="MinSizeRel" -S llvm -B build -G "Visual Studio 17 2022"
cd build
cmake --build . --config MinSizeRel
# Build our project. TODO: Add support of Ninja build system!!!
- name: Build RG3
env:
LLVM_DIR: ${{ github.workspace }}/llvm_repo/build/lib/cmake/llvm
CLANG_DIR: ${{ github.workspace }}/llvm_repo/build/lib/cmake/clang
BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}
Python3_ROOT_DIR: ${{ steps.install-python3.outputs.Python3_ROOT_DIR }}
run: |
mkdir build
cmake -DCMAKE_BUILD_TYPE="MinSizeRel" -B build -G "Visual Studio 17 2022"
cd build
cmake --build . --config MinSizeRel
# Make python packages (whl)
# Make dist folder with pyd & pyi files.
- name: Create distribution package
run: |
mkdir dist
mv PyBind/rg3py.pyi dist
mv build/PyBind/MinSizeRel/rg3py.pyd dist
# Upload artifacts. TODO: Upload whl artifacts too!
- name: Upload RG3 artifacts
uses: actions/upload-artifact@v2
with:
name: "RG3"
path: dist