Initial commit
Some checks failed
Docker Builders / build-base-builder (push) Failing after 5s

This commit is contained in:
2026-01-23 16:05:57 +01:00
commit cbd0ba7d88
7 changed files with 206 additions and 0 deletions

40
.gitea/workflows/ci.yaml Normal file
View File

@@ -0,0 +1,40 @@
name: Docker Builders
on:
push:
branches:
- '**'
workflow_dispatch:
env:
DOCKER_TLS_CERTDIR: "/certs"
BASE_BUILDER_TAG: ${{ secrets.CI_REGISTRY_IMAGE }}/linuxbasebuilder:${{ github.ref_name }}
CPP_BUILDER_TAG: ${{ secrets.CI_REGISTRY_IMAGE }}/linuxcppbuilder:${{ github.ref_name }}
BIGFOOT_BUILDER_TAG: ${{ secrets.CI_REGISTRY_IMAGE }}/linuxbigfootbuilder:${{ github.ref_name }}
BIGFOOT_COVERAGE_BUILDER_TAG: ${{ secrets.CI_REGISTRY_IMAGE }}/linuxbigfootcoveragebuilder:${{ github.ref_name }}
jobs:
build-base-builder:
runs-on: ubuntu-latest
timeout-minutes: 360
container:
image: docker:28.5.1
options: --privileged
services:
docker:
image: docker:28.5.1-dind
options: --privileged
steps:
- name: Login to the Container registry
uses: docker/login-action@v2
with:
registry: ${{ secrets.CI_REGISTRY }}
username: ${{ secrets.CI_USERNAME }}
password: ${{ secrets.CI_TOKEN }}
# - name: Build Base Builder
# run: docker build -t "$BASE_BUILDER_TAG" ./Linux/BaseBuilder
# - name: Push Base Builder
# run: docker push "$BASE_BUILDER_TAG"

0
.gitmodules vendored Normal file
View File

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022-2023 Romain BOULLARD
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,17 @@
FROM ubuntu:24.04
ENV TZ=Europe/Paris
ENV DEBIAN_FRONTEND=noninteractive
ENV PATH="/root/.local/bin:$PATH"
RUN --mount=type=cache,target=/ccache
# Make sudo dummy replacement, so we don't weaken docker security
RUN echo "#!/bin/bash\n\$@" > /usr/bin/sudo
RUN chmod +x /usr/bin/sudo
RUN apt-get update -y
RUN apt-get install -y
RUN apt-get install unzip curl wget lsb-release software-properties-common gnupg -y
RUN apt-get install python3 -y

View File

@@ -0,0 +1,24 @@
ARG BASE_BUILDER
FROM $BASE_BUILDER
ARG CONAN_RELEASE_PROFILE
ARG CONAN_RELWITHDEBINFO_PROFILE
ARG CONAN_DEBUG_PROFILE
RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add
RUN wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.4.313-noble.list https://packages.lunarg.com/vulkan/1.4.313/lunarg-vulkan-1.4.313-noble.list
RUN apt-get update -y
RUN apt-get install gcovr -y
RUN apt-get install vulkan-sdk -y
RUN apt-get install xvfb -y
COPY conanfile.py BigfootDependencies/conanfile.py
RUN ccache --zero-stats
RUN CONAN_LOGIN_USERNAME=${GITLAB_CONAN_USER} CONAN_PASSWORD=${GITLAB_CONAN_PASSWORD} conan install ./BigfootDependencies --remote=bigfootpackages --build="*" -pr:h=${CONAN_RELEASE_PROFILE} -pr:b=${CONAN_RELEASE_PROFILE} -s build_type=Release && \
CONAN_LOGIN_USERNAME=${GITLAB_CONAN_USER} CONAN_PASSWORD=${GITLAB_CONAN_PASSWORD} conan install ./BigfootDependencies --remote=bigfootpackages --build="*" -pr:h=${CONAN_RELWITHDEBINFO_PROFILE} -pr:b=${CONAN_RELWITHDEBINFO_PROFILE} -s build_type=RelWithDebInfo && \
CONAN_LOGIN_USERNAME=${GITLAB_CONAN_USER} CONAN_PASSWORD=${GITLAB_CONAN_PASSWORD} conan install ./BigfootDependencies --remote=bigfootpackages --build="*" -pr:h=${CONAN_DEBUG_PROFILE} -pr:b=${CONAN_DEBUG_PROFILE} -s build_type=Debug
RUN ccache --show-stats

View File

@@ -0,0 +1,55 @@
from conan import ConanFile
class RequirementsConan(ConanFile):
name = "Requirements"
def configure(self):
self.options['stduuid'].with_cxx20_span = True
self.options['flatbuffers'].header_only = True
self.options["tracy"].on_demand = True
self.options["spirv-cross"].exceptions = False
self.options["benchmark"].enable_exceptions = False
self.options["benchmark"].enable_lto = True
def requirements(self):
self.requires("eastl/3.27.01")
self.requires("unordered_dense/4.8.1")
self.requires("mimalloc/3.1.5")
self.requires("magic_enum/0.9.7")
self.requires("stduuid/1.2.3")
self.requires("sqlite3/3.51.0")
self.requires("cli11/2.6.0")
self.requires("xxhash/0.8.3")
self.requires("effolkronium-random/1.5.0")
self.requires("zeus_expected/1.3.0")
self.requires("flatbuffers/25.9.23")
self.requires("quill/11.0.2")
self.requires("tracy/0.12.2")
self.requires("cpptrace/1.0.4")
self.requires("glm/1.0.1")
self.requires("lodepng/cci.20250727")
self.requires("imgui/1.92.5-docking")
self.requires("glfw/3.4")
self.requires("vulkan-headers/1.4.313.0")
self.requires("vulkan-validationlayers/1.4.313.0")
self.requires("spirv-cross/1.4.313.0")
self.requires("vulkan-memory-allocator/3.3.0")
self.requires("gtest/1.17.0")
self.requires("pixelmatch-cpp17/1.0.3")
self.requires("stb/cci.20240531", override=True)
self.requires("shaderc/2025.3")
self.requires("assimp/6.0.2")
self.requires("meshoptimizer/1.0")
self.requires("libsquish/1.15")
self.requires("benchmark/1.9.4")

View File

@@ -0,0 +1,49 @@
ARG BASE_BUILDER
FROM $BASE_BUILDER
ENV CCACHE_DIR=/ccache
ENV CCACHE_COMPRESS=1
ENV CCACHE_MAXSIZE=10G
ENV CCACHE_COMPILERCHECK=content
RUN apt-get install build-essential -y
RUN apt-get install ccache -y
RUN apt-get install cmake -y
RUN apt-get install ninja-build -y
RUN apt-get install git -y
RUN apt-get install pkg-config -y
RUN wget https://apt.llvm.org/llvm.sh && \
chmod +x llvm.sh && \
./llvm.sh 18 all
RUN apt-get install clang-tools-18 -y
RUN ln -s /bin/clang-18 /bin/clang
RUN ln -s /bin/clang++-18 /bin/clang++
RUN ln -s /usr/bin/llvm-profdata-18 /usr/bin/llvm-profdata
RUN ln -s /usr/bin/llvm-cov-18 /usr/bin/llvm-cov
RUN ln -s /usr/bin/clang-format-18 /usr/bin/clang-format
RUN ln -s /usr/bin/clang-tidy-18 /usr/bin/clang-tidy
RUN ln -s /usr/bin/llvm-ar-18 /usr/bin/llvm-ar
RUN ln -s /usr/bin/llvm-nm-18 /usr/bin/llvm-nm
RUN ln -s /usr/bin/llvm-ranlib-18 /usr/bin/llvm-ranlib
RUN ccache --zero-stats
RUN ccache --show-stats
RUN apt-get install pipx -y
RUN pipx ensurepath
RUN git clone --branch v2.40.4 https://github.com/rui314/mold.git
RUN mold/install-build-deps.sh
RUN cmake mold -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -B mold/build
RUN cmake --build mold/build -j$(nproc)
RUN cmake --build mold/build --target install
RUN pipx install conan
RUN conan config install https://gitlab.com/bigfootdev/config/conan.git
RUN conan remote add bigfootpackages https://packages.bigfootengine.com/artifactory/api/conan/bigfootpackages
RUN conan remote disable conancenter