mirror of
https://git.citron-emu.org/citron/emulator
synced 2025-12-19 10:43:33 +00:00
ci: disable GitLab CI configuration
- Comment out all GitLab CI stages (build, test, package) - Preserve original configuration for future reference - Switch to GitHub Actions for CI/CD automation - Prevents unnecessary automated builds on GitLab VPS Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
847
.gitlab-ci.yml
847
.gitlab-ci.yml
@@ -1,432 +1,435 @@
|
|||||||
# GitLab CI config for Citron
|
# GitLab CI config for Citron - DISABLED
|
||||||
stages:
|
# This CI configuration has been disabled as GitHub Actions is now being used
|
||||||
- build
|
# To re-enable, uncomment the configuration below
|
||||||
- test
|
|
||||||
- package
|
|
||||||
|
|
||||||
variables:
|
# stages:
|
||||||
BUILD_TYPE: "Release"
|
# - build
|
||||||
CMAKE_BUILD_PARALLEL_LEVEL: "4"
|
# - test
|
||||||
DOCKER_DRIVER: overlay2
|
# - package
|
||||||
DOCKER_TLS_CERTDIR: ""
|
|
||||||
|
|
||||||
# Cache configuration for faster builds
|
# variables:
|
||||||
cache:
|
# BUILD_TYPE: "Release"
|
||||||
paths:
|
# CMAKE_BUILD_PARALLEL_LEVEL: "4"
|
||||||
- build/vcpkg_installed/
|
# DOCKER_DRIVER: overlay2
|
||||||
- build/_deps/
|
# DOCKER_TLS_CERTDIR: ""
|
||||||
key: "$CI_COMMIT_REF_SLUG"
|
|
||||||
policy: pull-push
|
# # Cache configuration for faster builds
|
||||||
|
# cache:
|
||||||
|
# paths:
|
||||||
|
# - build/vcpkg_installed/
|
||||||
|
# - build/_deps/
|
||||||
|
# key: "$CI_COMMIT_REF_SLUG"
|
||||||
|
# policy: pull-push
|
||||||
|
|
||||||
|
|
||||||
# Linux Build (CachyOS optimized)
|
# # Linux Build (CachyOS optimized)
|
||||||
build-linux:
|
# build-linux:
|
||||||
stage: build
|
# stage: build
|
||||||
image: cachyos/cachyos:latest
|
# image: cachyos/cachyos:latest
|
||||||
tags:
|
# tags:
|
||||||
- citron-build
|
# - citron-build
|
||||||
before_script:
|
# before_script:
|
||||||
- pacman -Syu --noconfirm
|
# - pacman -Syu --noconfirm
|
||||||
- pacman -S --noconfirm alsa-lib base-devel boost boost-libs catch2 cmake curl ffmpeg fmt fuse2 gamemode gcc gdb git glslang glu libusb libxi libxkbcommon libxkbcommon-x11 libxss libzip lz4 mbedtls2 mesa nasm ninja nlohmann-json openal openssl opus perl pipewire-audio pulseaudio pulseaudio-alsa qt6-base qt6-multimedia qt6-tools qt6-wayland sdl2 sdl2-compat unzip vulkan-headers vulkan-icd-loader vulkan-mesa-layers wget xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xorg-server-xvfb zip zstd zsync
|
# - pacman -S --noconfirm alsa-lib base-devel boost boost-libs catch2 cmake curl ffmpeg fmt fuse2 gamemode gcc gdb git glslang glu libusb libxi libxkbcommon libxkbcommon-x11 libxss libzip lz4 mbedtls2 mesa nasm ninja nlohmann-json openal openssl opus perl pipewire-audio pulseaudio pulseaudio-alsa qt6-base qt6-multimedia qt6-tools qt6-wayland sdl2 sdl2-compat unzip vulkan-headers vulkan-icd-loader vulkan-mesa-layers wget xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xorg-server-xvfb zip zstd zsync
|
||||||
- echo '#!/bin/bash' > /usr/local/bin/shasum
|
# - echo '#!/bin/bash' > /usr/local/bin/shasum
|
||||||
- echo 'if [ "$1" = "-a" ] && [ "$2" = "256" ]; then' >> /usr/local/bin/shasum
|
# - echo 'if [ "$1" = "-a" ] && [ "$2" = "256" ]; then' >> /usr/local/bin/shasum
|
||||||
- echo ' shift 2' >> /usr/local/bin/shasum
|
# - echo ' shift 2' >> /usr/local/bin/shasum
|
||||||
- echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
# - echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
||||||
- echo 'else' >> /usr/local/bin/shasum
|
# - echo 'else' >> /usr/local/bin/shasum
|
||||||
- echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
# - echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
||||||
- echo 'fi' >> /usr/local/bin/shasum
|
# - echo 'fi' >> /usr/local/bin/shasum
|
||||||
- chmod +x /usr/local/bin/shasum
|
# - chmod +x /usr/local/bin/shasum
|
||||||
script: |
|
# script: |
|
||||||
# Clean and reset submodules to handle any inconsistencies
|
# # Clean and reset submodules to handle any inconsistencies
|
||||||
git submodule deinit --all --force || true
|
# git submodule deinit --all --force || true
|
||||||
# Forcefully remove stale lock files that can block submodule updates
|
# # Forcefully remove stale lock files that can block submodule updates
|
||||||
find .git/modules -type f -name "*.lock" -delete
|
# find .git/modules -type f -name "*.lock" -delete
|
||||||
git submodule update --init --recursive --force
|
# git submodule update --init --recursive --force
|
||||||
mkdir -p build && cd build
|
# mkdir -p build && cd build
|
||||||
# Dynamically find the Qt private header path
|
# # Dynamically find the Qt private header path
|
||||||
HEADER_PATH=$(pacman -Ql qt6-base | grep 'qpa/qplatformnativeinterface.h$' | awk '{print $2}')
|
# HEADER_PATH=$(pacman -Ql qt6-base | grep 'qpa/qplatformnativeinterface.h$' | awk '{print $2}')
|
||||||
if [ -z "$HEADER_PATH" ]; then echo "ERROR: Could not find qplatformnativeinterface.h path." >&2; exit 1; fi
|
# if [ -z "$HEADER_PATH" ]; then echo "ERROR: Could not find qplatformnativeinterface.h path." >&2; exit 1; fi
|
||||||
QT_PRIVATE_INCLUDE_DIR=$(dirname "$(dirname "$HEADER_PATH")")
|
# QT_PRIVATE_INCLUDE_DIR=$(dirname "$(dirname "$HEADER_PATH")")
|
||||||
echo "Found Qt private include directory: ${QT_PRIVATE_INCLUDE_DIR}"
|
# echo "Found Qt private include directory: ${QT_PRIVATE_INCLUDE_DIR}"
|
||||||
# Configure and build with the dynamically found path
|
# # Configure and build with the dynamically found path
|
||||||
cmake .. \
|
# cmake .. \
|
||||||
-G Ninja \
|
# -G Ninja \
|
||||||
-DCMAKE_C_COMPILER=gcc \
|
# -DCMAKE_C_COMPILER=gcc \
|
||||||
-DCMAKE_CXX_COMPILER=g++ \
|
# -DCMAKE_CXX_COMPILER=g++ \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
# -DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
# -DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
# -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||||
-DUSE_SYSTEM_QT=ON \
|
# -DUSE_SYSTEM_QT=ON \
|
||||||
-DCMAKE_C_FLAGS="-O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=x86-64-v2 -mtune=native -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti" \
|
# -DCMAKE_C_FLAGS="-O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=x86-64-v2 -mtune=native -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti" \
|
||||||
-DCMAKE_CXX_FLAGS="-I${QT_PRIVATE_INCLUDE_DIR} -O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=x86-64-v2 -mtune=native -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti -Wno-error -w" \
|
# -DCMAKE_CXX_FLAGS="-I${QT_PRIVATE_INCLUDE_DIR} -O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=x86-64-v2 -mtune=native -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti -Wno-error -w" \
|
||||||
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--gc-sections -Wl,-O2 -Wl,--as-needed" \
|
# -DCMAKE_EXE_LINKER_FLAGS="-Wl,--gc-sections -Wl,-O2 -Wl,--as-needed" \
|
||||||
-DSDL_PIPEWIRE=OFF \
|
# -DSDL_PIPEWIRE=OFF \
|
||||||
-DCITRON_USE_BUNDLED_VCPKG=OFF \
|
# -DCITRON_USE_BUNDLED_VCPKG=OFF \
|
||||||
-DUSE_DISCORD_PRESENCE=OFF \
|
# -DUSE_DISCORD_PRESENCE=OFF \
|
||||||
-DBUNDLE_SPEEX=ON \
|
# -DBUNDLE_SPEEX=ON \
|
||||||
-DCITRON_USE_BUNDLED_FFMPEG=OFF \
|
# -DCITRON_USE_BUNDLED_FFMPEG=OFF \
|
||||||
-DCITRON_USE_QT_MULTIMEDIA=OFF \
|
# -DCITRON_USE_QT_MULTIMEDIA=OFF \
|
||||||
-DCITRON_USE_QT_WEB_ENGINE=OFF
|
# -DCITRON_USE_QT_WEB_ENGINE=OFF
|
||||||
ninja
|
# ninja
|
||||||
cd ..
|
# cd ..
|
||||||
echo "Build completed, checking for executables..."
|
# echo "Build completed, checking for executables..."
|
||||||
ls -la build/bin/ || echo "No build/bin directory found"
|
# ls -la build/bin/ || echo "No build/bin directory found"
|
||||||
find build/ -name "*.so" -o -name "citron*" | head -20 || echo "No shared libraries or executables found"
|
# find build/ -name "*.so" -o -name "citron*" | head -20 || echo "No shared libraries or executables found"
|
||||||
echo "Checking library dependencies..."
|
# echo "Checking library dependencies..."
|
||||||
ldd build/bin/citron || echo "citron binary not found or ldd failed"
|
# ldd build/bin/citron || echo "citron binary not found or ldd failed"
|
||||||
chmod +x AppImage-build-local.sh
|
# chmod +x AppImage-build-local.sh
|
||||||
echo "Attempting AppImage build with FUSE workaround..."
|
# echo "Attempting AppImage build with FUSE workaround..."
|
||||||
export APPIMAGE_EXTRACT_AND_RUN=1
|
# export APPIMAGE_EXTRACT_AND_RUN=1
|
||||||
export ARCH=x86_64
|
# export ARCH=x86_64
|
||||||
export VERSION=$(git describe --tags --always)
|
# export VERSION=$(git describe --tags --always)
|
||||||
echo "Testing shasum compatibility..."
|
# echo "Testing shasum compatibility..."
|
||||||
which shasum || echo "shasum not found in PATH"
|
# which shasum || echo "shasum not found in PATH"
|
||||||
echo "Testing shasum -a 256 syntax..."
|
# echo "Testing shasum -a 256 syntax..."
|
||||||
echo "test" | shasum -a 256 || echo "shasum -a 256 failed"
|
# echo "test" | shasum -a 256 || echo "shasum -a 256 failed"
|
||||||
echo "test" | sha256sum || echo "sha256sum failed"
|
# echo "test" | sha256sum || echo "sha256sum failed"
|
||||||
echo "Running AppImage build..."
|
# echo "Running AppImage build..."
|
||||||
./AppImage-build-local.sh || echo "AppImage build failed, continuing..."
|
# ./AppImage-build-local.sh || echo "AppImage build failed, continuing..."
|
||||||
ls -la *.AppImage || echo "No AppImage files found"
|
# ls -la *.AppImage || echo "No AppImage files found"
|
||||||
echo "AppImage size information:"
|
# echo "AppImage size information:"
|
||||||
du -h *.AppImage || echo "No AppImage to measure"
|
# du -h *.AppImage || echo "No AppImage to measure"
|
||||||
echo "Total artifact size:"
|
# echo "Total artifact size:"
|
||||||
du -sh citron.AppImage build/bin/citron 2>/dev/null || echo "Cannot measure artifact sizes"
|
# du -sh citron.AppImage build/bin/citron 2>/dev/null || echo "Cannot measure artifact sizes"
|
||||||
echo "Compressing AppImage for upload..."
|
# echo "Compressing AppImage for upload..."
|
||||||
gzip -9 -c citron.AppImage > citron.AppImage.gz
|
# gzip -9 -c citron.AppImage > citron.AppImage.gz
|
||||||
ls -la citron.AppImage.gz
|
# ls -la citron.AppImage.gz
|
||||||
du -h citron.AppImage.gz
|
# du -h citron.AppImage.gz
|
||||||
echo "AppImage compressed with gzip successfully"
|
# echo "AppImage compressed with gzip successfully"
|
||||||
tar -czf citron-binary.tar.gz build/bin/
|
# tar -czf citron-binary.tar.gz build/bin/
|
||||||
ls -la citron-binary.tar.gz
|
# ls -la citron-binary.tar.gz
|
||||||
du -h citron-binary.tar.gz
|
# du -h citron-binary.tar.gz
|
||||||
artifacts:
|
# artifacts:
|
||||||
paths:
|
# paths:
|
||||||
- citron.AppImage.gz
|
# - citron.AppImage.gz
|
||||||
- citron-binary.tar.gz
|
# - citron-binary.tar.gz
|
||||||
expire_in: 1 week
|
# expire_in: 1 week
|
||||||
when: always
|
# when: always
|
||||||
only:
|
# only:
|
||||||
- main
|
# - main
|
||||||
- master
|
# - master
|
||||||
- develop
|
# - develop
|
||||||
- ci-fixes
|
# - ci-fixes
|
||||||
- Boss-Build-Flags-For-CI-CMAKE-ON-CachyOS
|
# - Boss-Build-Flags-For-CI-CMAKE-ON-CachyOS
|
||||||
- merge_requests
|
# - merge_requests
|
||||||
|
|
||||||
# Linux Build (CachyOS v3 optimized)
|
# # Linux Build (CachyOS v3 optimized)
|
||||||
build-linux-v3:
|
# build-linux-v3:
|
||||||
stage: build
|
# stage: build
|
||||||
image: cachyos/cachyos-v3
|
# image: cachyos/cachyos-v3
|
||||||
tags:
|
# tags:
|
||||||
- citron-build
|
# - citron-build
|
||||||
before_script:
|
# before_script:
|
||||||
- pacman -Syu --noconfirm
|
# - pacman -Syu --noconfirm
|
||||||
- pacman -S --noconfirm alsa-lib base-devel boost boost-libs catch2 cmake curl ffmpeg fmt fuse2 gamemode gcc gdb git glslang glu libusb libxi libxkbcommon libxkbcommon-x11 libxss libzip lz4 mbedtls2 mesa nasm ninja nlohmann-json openal openssl opus perl pipewire-audio pulseaudio pulseaudio-alsa python-pip qt6-base qt6-multimedia qt6-tools qt6-wayland sdl2 sdl2-compat unzip vulkan-headers vulkan-icd-loader vulkan-mesa-layers wget xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xorg-server-xvfb zip zstd zsync
|
# - pacman -S --noconfirm alsa-lib base-devel boost boost-libs catch2 cmake curl ffmpeg fmt fuse2 gamemode gcc gdb git glslang glu libusb libxi libxkbcommon libxkbcommon-x11 libxss libzip lz4 mbedtls2 mesa nasm ninja nlohmann-json openal openssl opus perl pipewire-audio pulseaudio pulseaudio-alsa python-pip qt6-base qt6-multimedia qt6-tools qt6-wayland sdl2 sdl2-compat unzip vulkan-headers vulkan-icd-loader vulkan-mesa-layers wget xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xorg-server-xvfb zip zstd zsync
|
||||||
- echo '#!/bin/bash' > /usr/local/bin/shasum
|
# - echo '#!/bin/bash' > /usr/local/bin/shasum
|
||||||
- echo 'if [ "$1" = "-a" ] && [ "$2" = "256" ]; then' >> /usr/local/bin/shasum
|
# - echo 'if [ "$1" = "-a" ] && [ "$2" = "256" ]; then' >> /usr/local/bin/shasum
|
||||||
- echo ' shift 2' >> /usr/local/bin/shasum
|
# - echo ' shift 2' >> /usr/local/bin/shasum
|
||||||
- echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
# - echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
||||||
- echo 'else' >> /usr/local/bin/shasum
|
# - echo 'else' >> /usr/local/bin/shasum
|
||||||
- echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
# - echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
||||||
- echo 'fi' >> /usr/local/bin/shasum
|
# - echo 'fi' >> /usr/local/bin/shasum
|
||||||
- chmod +x /usr/local/bin/shasum
|
# - chmod +x /usr/local/bin/shasum
|
||||||
script: |
|
# script: |
|
||||||
git submodule deinit --all --force || true
|
# git submodule deinit --all --force || true
|
||||||
find .git/modules -type f -name "*.lock" -delete
|
# find .git/modules -type f -name "*.lock" -delete
|
||||||
git submodule update --init --recursive --force
|
# git submodule update --init --recursive --force
|
||||||
mkdir -p build && cd build
|
# mkdir -p build && cd build
|
||||||
HEADER_PATH=$(pacman -Ql qt6-base | grep 'qpa/qplatformnativeinterface.h$' | awk '{print $2}')
|
# HEADER_PATH=$(pacman -Ql qt6-base | grep 'qpa/qplatformnativeinterface.h$' | awk '{print $2}')
|
||||||
if [ -z "$HEADER_PATH" ]; then echo "ERROR: Could not find qplatformnativeinterface.h path." >&2; exit 1; fi
|
# if [ -z "$HEADER_PATH" ]; then echo "ERROR: Could not find qplatformnativeinterface.h path." >&2; exit 1; fi
|
||||||
QT_PRIVATE_INCLUDE_DIR=$(dirname "$(dirname "$HEADER_PATH")")
|
# QT_PRIVATE_INCLUDE_DIR=$(dirname "$(dirname "$HEADER_PATH")")
|
||||||
echo "Found Qt private include directory: ${QT_PRIVATE_INCLUDE_DIR}"
|
# echo "Found Qt private include directory: ${QT_PRIVATE_INCLUDE_DIR}"
|
||||||
cmake .. \
|
# cmake .. \
|
||||||
-G Ninja \
|
# -G Ninja \
|
||||||
-DCMAKE_C_COMPILER=gcc \
|
# -DCMAKE_C_COMPILER=gcc \
|
||||||
-DCMAKE_CXX_COMPILER=g++ \
|
# -DCMAKE_CXX_COMPILER=g++ \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
# -DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
# -DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
# -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||||
-DCMAKE_C_FLAGS="-O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=x86-64-v3 -mtune=native -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti" \
|
# -DCMAKE_C_FLAGS="-O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=x86-64-v3 -mtune=native -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti" \
|
||||||
-DCMAKE_CXX_FLAGS="-I${QT_PRIVATE_INCLUDE_DIR} -O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=x86-64-v3 -mtune=native -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti -Wno-error -w" \
|
# -DCMAKE_CXX_FLAGS="-I${QT_PRIVATE_INCLUDE_DIR} -O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=x86-64-v3 -mtune=native -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti -Wno-error -w" \
|
||||||
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--gc-sections -Wl,-O2 -Wl,--as-needed" \
|
# -DCMAKE_EXE_LINKER_FLAGS="-Wl,--gc-sections -Wl,-O2 -Wl,--as-needed" \
|
||||||
-DSDL_PIPEWIRE=OFF \
|
# -DSDL_PIPEWIRE=OFF \
|
||||||
-DCITRON_USE_BUNDLED_VCPKG=OFF \
|
# -DCITRON_USE_BUNDLED_VCPKG=OFF \
|
||||||
-DUSE_DISCORD_PRESENCE=OFF \
|
# -DUSE_DISCORD_PRESENCE=OFF \
|
||||||
-DBUNDLE_SPEEX=ON \
|
# -DBUNDLE_SPEEX=ON \
|
||||||
-DCITRON_USE_BUNDLED_FFMPEG=OFF \
|
# -DCITRON_USE_BUNDLED_FFMPEG=OFF \
|
||||||
-DCITRON_USE_QT_MULTIMEDIA=OFF \
|
# -DCITRON_USE_QT_MULTIMEDIA=OFF \
|
||||||
-DCITRON_USE_QT_WEB_ENGINE=OFF
|
# -DCITRON_USE_QT_WEB_ENGINE=OFF
|
||||||
ninja
|
# ninja
|
||||||
cd ..
|
# cd ..
|
||||||
echo "Build completed, checking for executables..."
|
# echo "Build completed, checking for executables..."
|
||||||
ls -la build/bin/ || echo "No build/bin directory found"
|
# ls -la build/bin/ || echo "No build/bin directory found"
|
||||||
find build/ -name "*.so" -o -name "citron*" | head -20 || echo "No shared libraries or executables found"
|
# find build/ -name "*.so" -o -name "citron*" | head -20 || echo "No shared libraries or executables found"
|
||||||
echo "Checking library dependencies..."
|
# echo "Checking library dependencies..."
|
||||||
ldd build/bin/citron || echo "citron binary not found or ldd failed"
|
# ldd build/bin/citron || echo "citron binary not found or ldd failed"
|
||||||
chmod +x AppImage-build-local.sh
|
# chmod +x AppImage-build-local.sh
|
||||||
echo "Attempting AppImage build with FUSE workaround..."
|
# echo "Attempting AppImage build with FUSE workaround..."
|
||||||
export APPIMAGE_EXTRACT_AND_RUN=1
|
# export APPIMAGE_EXTRACT_AND_RUN=1
|
||||||
export ARCH=x86_64
|
# export ARCH=x86_64
|
||||||
export VERSION=$(git describe --tags --always)
|
# export VERSION=$(git describe --tags --always)
|
||||||
echo "Testing shasum compatibility..."
|
# echo "Testing shasum compatibility..."
|
||||||
which shasum || echo "shasum not found in PATH"
|
# which shasum || echo "shasum not found in PATH"
|
||||||
echo "Testing shasum -a 256 syntax..."
|
# echo "Testing shasum -a 256 syntax..."
|
||||||
echo "test" | shasum -a 256 || echo "shasum -a 256 failed"
|
# echo "test" | shasum -a 256 || echo "shasum -a 256 failed"
|
||||||
echo "test" | sha256sum || echo "sha256sum failed"
|
# echo "test" | sha256sum || echo "sha256sum failed"
|
||||||
echo "Running AppImage build..."
|
# echo "Running AppImage build..."
|
||||||
./AppImage-build-local.sh || echo "AppImage build failed, continuing..."
|
# ./AppImage-build-local.sh || echo "AppImage build failed, continuing..."
|
||||||
ls -la *.AppImage || echo "No AppImage files found"
|
# ls -la *.AppImage || echo "No AppImage files found"
|
||||||
echo "AppImage size information:"
|
# echo "AppImage size information:"
|
||||||
du -h *.AppImage || echo "No AppImage to measure"
|
# du -h *.AppImage || echo "No AppImage to measure"
|
||||||
echo "Total artifact size:"
|
# echo "Total artifact size:"
|
||||||
du -sh citron.AppImage build/bin/citron 2>/dev/null || echo "Cannot measure artifact sizes"
|
# du -sh citron.AppImage build/bin/citron 2>/dev/null || echo "Cannot measure artifact sizes"
|
||||||
echo "Compressing AppImage for upload..."
|
# echo "Compressing AppImage for upload..."
|
||||||
gzip -9 -c citron.AppImage > citron.AppImage.gz
|
# gzip -9 -c citron.AppImage > citron.AppImage.gz
|
||||||
ls -la citron.AppImage.gz
|
# ls -la citron.AppImage.gz
|
||||||
du -h citron.AppImage.gz
|
# du -h citron.AppImage.gz
|
||||||
echo "AppImage compressed with gzip successfully"
|
# echo "AppImage compressed with gzip successfully"
|
||||||
tar -czf citron-binary.tar.gz build/bin/
|
# tar -czf citron-binary.tar.gz build/bin/
|
||||||
ls -la citron-binary.tar.gz
|
# ls -la citron-binary.tar.gz
|
||||||
du -h citron-binary.tar.gz
|
# du -h citron-binary.tar.gz
|
||||||
artifacts:
|
# artifacts:
|
||||||
paths:
|
# paths:
|
||||||
- citron.AppImage.gz
|
# - citron.AppImage.gz
|
||||||
- citron-binary.tar.gz
|
# - citron-binary.tar.gz
|
||||||
expire_in: 1 week
|
# expire_in: 1 week
|
||||||
when: always
|
# when: always
|
||||||
only:
|
# only:
|
||||||
- main
|
# - main
|
||||||
- master
|
# - master
|
||||||
- develop
|
# - develop
|
||||||
- ci-fixes
|
# - ci-fixes
|
||||||
- Boss-Build-Flags-For-CI-CMAKE-ON-CachyOS
|
# - Boss-Build-Flags-For-CI-CMAKE-ON-CachyOS
|
||||||
- merge_requests
|
# - merge_requests
|
||||||
|
|
||||||
# Linux Build (Steam Deck optimized - AMD Zen 2)
|
# # Linux Build (Steam Deck optimized - AMD Zen 2)
|
||||||
build-linux-steamdeck:
|
# build-linux-steamdeck:
|
||||||
stage: build
|
# stage: build
|
||||||
image: cachyos/cachyos:latest
|
# image: cachyos/cachyos:latest
|
||||||
tags:
|
# tags:
|
||||||
- citron-build
|
# - citron-build
|
||||||
before_script:
|
# before_script:
|
||||||
- pacman -Syu --noconfirm
|
# - pacman -Syu --noconfirm
|
||||||
- pacman -S --noconfirm alsa-lib base-devel boost boost-libs catch2 cmake curl ffmpeg fmt fuse2 gamemode gcc gdb git glslang glu libusb libxi libxkbcommon libxkbcommon-x11 libxss libzip lz4 mbedtls2 mesa nasm ninja nlohmann-json openal openssl opus perl pipewire-audio pulseaudio pulseaudio-alsa python-pip qt6-base qt6-multimedia qt6-tools qt6-wayland sdl2 sdl2-compat unzip vulkan-headers vulkan-icd-loader vulkan-mesa-layers wget xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xorg-server-xvfb zip zstd zsync
|
# - pacman -S --noconfirm alsa-lib base-devel boost boost-libs catch2 cmake curl ffmpeg fmt fuse2 gamemode gcc gdb git glslang glu libusb libxi libxkbcommon libxkbcommon-x11 libxss libzip lz4 mbedtls2 mesa nasm ninja nlohmann-json openal openssl opus perl pipewire-audio pulseaudio pulseaudio-alsa python-pip qt6-base qt6-multimedia qt6-tools qt6-wayland sdl2 sdl2-compat unzip vulkan-headers vulkan-icd-loader vulkan-mesa-layers wget xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm xorg-server-xvfb zip zstd zsync
|
||||||
- echo '#!/bin/bash' > /usr/local/bin/shasum
|
# - echo '#!/bin/bash' > /usr/local/bin/shasum
|
||||||
- echo 'if [ "$1" = "-a" ] && [ "$2" = "256" ]; then' >> /usr/local/bin/shasum
|
# - echo 'if [ "$1" = "-a" ] && [ "$2" = "256" ]; then' >> /usr/local/bin/shasum
|
||||||
- echo ' shift 2' >> /usr/local/bin/shasum
|
# - echo ' shift 2' >> /usr/local/bin/shasum
|
||||||
- echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
# - echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
||||||
- echo 'else' >> /usr/local/bin/shasum
|
# - echo 'else' >> /usr/local/bin/shasum
|
||||||
- echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
# - echo ' sha256sum "$@"' >> /usr/local/bin/shasum
|
||||||
- echo 'fi' >> /usr/local/bin/shasum
|
# - echo 'fi' >> /usr/local/bin/shasum
|
||||||
- chmod +x /usr/local/bin/shasum
|
# - chmod +x /usr/local/bin/shasum
|
||||||
script: |
|
# script: |
|
||||||
git submodule deinit --all --force || true
|
# git submodule deinit --all --force || true
|
||||||
find .git/modules -type f -name "*.lock" -delete
|
# find .git/modules -type f -name "*.lock" -delete
|
||||||
git submodule update --init --recursive --force
|
# git submodule update --init --recursive --force
|
||||||
mkdir -p build && cd build
|
# mkdir -p build && cd build
|
||||||
HEADER_PATH=$(pacman -Ql qt6-base | grep 'qpa/qplatformnativeinterface.h$' | awk '{print $2}')
|
# HEADER_PATH=$(pacman -Ql qt6-base | grep 'qpa/qplatformnativeinterface.h$' | awk '{print $2}')
|
||||||
if [ -z "$HEADER_PATH" ]; then echo "ERROR: Could not find qplatformnativeinterface.h path." >&2; exit 1; fi
|
# if [ -z "$HEADER_PATH" ]; then echo "ERROR: Could not find qplatformnativeinterface.h path." >&2; exit 1; fi
|
||||||
QT_PRIVATE_INCLUDE_DIR=$(dirname "$(dirname "$HEADER_PATH")")
|
# QT_PRIVATE_INCLUDE_DIR=$(dirname "$(dirname "$HEADER_PATH")")
|
||||||
echo "Found Qt private include directory: ${QT_PRIVATE_INCLUDE_DIR}"
|
# echo "Found Qt private include directory: ${QT_PRIVATE_INCLUDE_DIR}"
|
||||||
cmake .. \
|
# cmake .. \
|
||||||
-G Ninja \
|
# -G Ninja \
|
||||||
-DCMAKE_C_COMPILER=gcc \
|
# -DCMAKE_C_COMPILER=gcc \
|
||||||
-DCMAKE_CXX_COMPILER=g++ \
|
# -DCMAKE_CXX_COMPILER=g++ \
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
# -DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
# -DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
# -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||||
-DCMAKE_C_FLAGS="-O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=znver2 -mtune=znver2 -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti" \
|
# -DCMAKE_C_FLAGS="-O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=znver2 -mtune=znver2 -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti" \
|
||||||
-DCMAKE_CXX_FLAGS="-I${QT_PRIVATE_INCLUDE_DIR} -O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=znver2 -mtune=znver2 -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti -Wno-error -w" \
|
# -DCMAKE_CXX_FLAGS="-I${QT_PRIVATE_INCLUDE_DIR} -O3 -ffast-math -funsafe-math-optimizations -fno-math-errno -fno-trapping-math -freciprocal-math -ffp-contract=fast -fassociative-math -fno-rounding-math -fno-signaling-nans -march=znver2 -mtune=znver2 -fomit-frame-pointer -fstrict-aliasing -frename-registers -fno-plt -funroll-loops -floop-interchange -floop-strip-mine -floop-block -fprefetch-loop-arrays -fpredictive-commoning -ftree-vectorize -fsplit-paths -finline-functions -finline-limit=1000 -finline-functions-called-once -fgcse-sm -fgcse-las -freorder-blocks-and-partition -fipa-pta -fipa-cp-clone -fwhole-program -flto=auto -fuse-linker-plugin -fvisibility=hidden -fdata-sections -ffunction-sections -fno-semantic-interposition -fopenmp -fexceptions -frtti -Wno-error -w" \
|
||||||
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--gc-sections -Wl,-O2 -Wl,--as-needed" \
|
# -DCMAKE_EXE_LINKER_FLAGS="-Wl,--gc-sections -Wl,-O2 -Wl,--as-needed" \
|
||||||
-DSDL_PIPEWIRE=OFF \
|
# -DSDL_PIPEWIRE=OFF \
|
||||||
-DCITRON_USE_BUNDLED_VCPKG=OFF \
|
# -DCITRON_USE_BUNDLED_VCPKG=OFF \
|
||||||
-DUSE_DISCORD_PRESENCE=OFF \
|
# -DUSE_DISCORD_PRESENCE=OFF \
|
||||||
-DBUNDLE_SPEEX=ON \
|
# -DBUNDLE_SPEEX=ON \
|
||||||
-DCITRON_USE_BUNDLED_FFMPEG=OFF \
|
# -DCITRON_USE_BUNDLED_FFMPEG=OFF \
|
||||||
-DCITRON_USE_QT_MULTIMEDIA=OFF \
|
# -DCITRON_USE_QT_MULTIMEDIA=OFF \
|
||||||
-DCITRON_USE_QT_WEB_ENGINE=OFF
|
# -DCITRON_USE_QT_WEB_ENGINE=OFF
|
||||||
ninja
|
# ninja
|
||||||
cd ..
|
# cd ..
|
||||||
echo "Build completed, checking for executables..."
|
# echo "Build completed, checking for executables..."
|
||||||
ls -la build/bin/ || echo "No build/bin directory found"
|
# ls -la build/bin/ || echo "No build/bin directory found"
|
||||||
find build/ -name "*.so" -o -name "citron*" | head -20 || echo "No shared libraries or executables found"
|
# find build/ -name "*.so" -o -name "citron*" | head -20 || echo "No shared libraries or executables found"
|
||||||
echo "Checking library dependencies..."
|
# echo "Checking library dependencies..."
|
||||||
ldd build/bin/citron || echo "citron binary not found or ldd failed"
|
# ldd build/bin/citron || echo "citron binary not found or ldd failed"
|
||||||
chmod +x AppImage-build-local.sh
|
# chmod +x AppImage-build-local.sh
|
||||||
echo "Attempting AppImage build with FUSE workaround..."
|
# echo "Attempting AppImage build with FUSE workaround..."
|
||||||
export APPIMAGE_EXTRACT_AND_RUN=1
|
# export APPIMAGE_EXTRACT_AND_RUN=1
|
||||||
export ARCH=x86_64
|
# export ARCH=x86_64
|
||||||
export VERSION=$(git describe --tags --always)
|
# export VERSION=$(git describe --tags --always)
|
||||||
echo "Testing shasum compatibility..."
|
# echo "Testing shasum compatibility..."
|
||||||
which shasum || echo "shasum not found in PATH"
|
# which shasum || echo "shasum not found in PATH"
|
||||||
echo "Testing shasum -a 256 syntax..."
|
# echo "Testing shasum -a 256 syntax..."
|
||||||
echo "test" | shasum -a 256 || echo "shasum -a 256 failed"
|
# echo "test" | shasum -a 256 || echo "shasum -a 256 failed"
|
||||||
echo "test" | sha256sum || echo "sha256sum failed"
|
# echo "test" | sha256sum || echo "sha256sum failed"
|
||||||
echo "Running AppImage build..."
|
# echo "Running AppImage build..."
|
||||||
./AppImage-build-local.sh || echo "AppImage build failed, continuing..."
|
# ./AppImage-build-local.sh || echo "AppImage build failed, continuing..."
|
||||||
ls -la *.AppImage || echo "No AppImage files found"
|
# ls -la *.AppImage || echo "No AppImage files found"
|
||||||
echo "AppImage size information:"
|
# echo "AppImage size information:"
|
||||||
du -h *.AppImage || echo "No AppImage to measure"
|
# du -h *.AppImage || echo "No AppImage to measure"
|
||||||
echo "Total artifact size:"
|
# echo "Total artifact size:"
|
||||||
du -sh citron.AppImage build/bin/citron 2>/dev/null || echo "Cannot measure artifact sizes"
|
# du -sh citron.AppImage build/bin/citron 2>/dev/null || echo "Cannot measure artifact sizes"
|
||||||
echo "Compressing AppImage for upload..."
|
# echo "Compressing AppImage for upload..."
|
||||||
gzip -9 -c citron.AppImage > citron.AppImage.gz
|
# gzip -9 -c citron.AppImage > citron.AppImage.gz
|
||||||
ls -la citron.AppImage.gz
|
# ls -la citron.AppImage.gz
|
||||||
du -h citron.AppImage.gz
|
# du -h citron.AppImage.gz
|
||||||
echo "AppImage compressed with gzip successfully"
|
# echo "AppImage compressed with gzip successfully"
|
||||||
tar -czf citron-binary.tar.gz build/bin/
|
# tar -czf citron-binary.tar.gz build/bin/
|
||||||
ls -la citron-binary.tar.gz
|
# ls -la citron-binary.tar.gz
|
||||||
du -h citron-binary.tar.gz
|
# du -h citron-binary.tar.gz
|
||||||
artifacts:
|
# artifacts:
|
||||||
paths:
|
# paths:
|
||||||
- citron.AppImage.gz
|
# - citron.AppImage.gz
|
||||||
- citron-binary.tar.gz
|
# - citron-binary.tar.gz
|
||||||
expire_in: 1 week
|
# expire_in: 1 week
|
||||||
when: always
|
# when: always
|
||||||
only:
|
# only:
|
||||||
- main
|
# - main
|
||||||
- master
|
# - master
|
||||||
- develop
|
# - develop
|
||||||
- ci-fixes
|
# - ci-fixes
|
||||||
- Boss-Build-Flags-For-CI-CMAKE-ON-CachyOS
|
# - Boss-Build-Flags-For-CI-CMAKE-ON-CachyOS
|
||||||
- merge_requests
|
# - merge_requests
|
||||||
|
|
||||||
# Android Build (Ubuntu 24.04 optimized)
|
# # Android Build (Ubuntu 24.04 optimized)
|
||||||
build-android:
|
# build-android:
|
||||||
stage: build
|
# stage: build
|
||||||
image: ubuntu:24.04
|
# image: ubuntu:24.04
|
||||||
tags:
|
# tags:
|
||||||
- citron-build
|
# - citron-build
|
||||||
before_script:
|
# before_script:
|
||||||
- apt-get update -qq
|
# - apt-get update -qq
|
||||||
- apt-get install -y -qq openjdk-17-jdk wget unzip curl git cmake build-essential pkg-config zip glslang-tools
|
# - apt-get install -y -qq openjdk-17-jdk wget unzip curl git cmake build-essential pkg-config zip glslang-tools
|
||||||
- wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
|
# - wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip
|
||||||
- unzip -q commandlinetools-linux-11076708_latest.zip
|
# - unzip -q commandlinetools-linux-11076708_latest.zip
|
||||||
- mkdir -p android-sdk/cmdline-tools
|
# - mkdir -p android-sdk/cmdline-tools
|
||||||
- mv cmdline-tools android-sdk/cmdline-tools/latest
|
# - mv cmdline-tools android-sdk/cmdline-tools/latest
|
||||||
- export ANDROID_SDK_ROOT=$PWD/android-sdk
|
# - export ANDROID_SDK_ROOT=$PWD/android-sdk
|
||||||
- export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin
|
# - export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin
|
||||||
- printf "y\ny\ny\ny\ny\ny\ny\n" | sdkmanager --licenses || true
|
# - printf "y\ny\ny\ny\ny\ny\ny\n" | sdkmanager --licenses || true
|
||||||
- sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
|
# - sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
|
||||||
- wget -q https://dl.google.com/android/repository/android-ndk-r26b-linux.zip
|
# - wget -q https://dl.google.com/android/repository/android-ndk-r26b-linux.zip
|
||||||
- unzip -q android-ndk-r26b-linux.zip
|
# - unzip -q android-ndk-r26b-linux.zip
|
||||||
- export ANDROID_NDK_HOME=$PWD/android-ndk-r26b
|
# - export ANDROID_NDK_HOME=$PWD/android-ndk-r26b
|
||||||
script:
|
# script:
|
||||||
- git submodule deinit --all --force || true
|
# - git submodule deinit --all --force || true
|
||||||
- git submodule update --init --recursive --force
|
# - git submodule update --init --recursive --force
|
||||||
- cmake -B build-android -S . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-30 -DENABLE_QT=OFF -DENABLE_SDL2=OFF -DENABLE_WEB_SERVICE=OFF -DCITRON_USE_BUNDLED_VCPKG=ON -DCITRON_USE_BUNDLED_FFMPEG=ON -DANDROID_ARM_NEON=ON -DCITRON_ENABLE_LTO=ON
|
# - cmake -B build-android -S . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-30 -DENABLE_QT=OFF -DENABLE_SDL2=OFF -DENABLE_WEB_SERVICE=OFF -DCITRON_USE_BUNDLED_VCPKG=ON -DCITRON_USE_BUNDLED_FFMPEG=ON -DANDROID_ARM_NEON=ON -DCITRON_ENABLE_LTO=ON
|
||||||
- cmake --build build-android --config $BUILD_TYPE --parallel $CMAKE_BUILD_PARALLEL_LEVEL
|
# - cmake --build build-android --config $BUILD_TYPE --parallel $CMAKE_BUILD_PARALLEL_LEVEL
|
||||||
- cd src/android
|
# - cd src/android
|
||||||
- ./gradlew assembleMainlineRelease
|
# - ./gradlew assembleMainlineRelease
|
||||||
artifacts:
|
# artifacts:
|
||||||
paths:
|
# paths:
|
||||||
- src/android/app/build/outputs/apk/mainline/release/*.apk
|
# - src/android/app/build/outputs/apk/mainline/release/*.apk
|
||||||
expire_in: 1 week
|
# expire_in: 1 week
|
||||||
only:
|
# only:
|
||||||
- main
|
# - main
|
||||||
- master
|
# - master
|
||||||
- develop
|
# - develop
|
||||||
- ci-fixes
|
# - ci-fixes
|
||||||
- merge_requests
|
# - merge_requests
|
||||||
allow_failure: true
|
# allow_failure: true
|
||||||
|
|
||||||
# Unit Tests
|
# # Unit Tests
|
||||||
test-unit:
|
# test-unit:
|
||||||
stage: test
|
# stage: test
|
||||||
image: ubuntu:24.04
|
# image: ubuntu:24.04
|
||||||
tags:
|
# tags:
|
||||||
- citron-build
|
# - citron-build
|
||||||
before_script:
|
# before_script:
|
||||||
# Set the environment to be non-interactive
|
# # Set the environment to be non-interactive
|
||||||
- export DEBIAN_FRONTEND=noninteractive
|
# - export DEBIAN_FRONTEND=noninteractive
|
||||||
|
#
|
||||||
# Update package lists and install tool for managing repositories
|
# # Update package lists and install tool for managing repositories
|
||||||
- apt-get update -qq
|
# - apt-get update -qq
|
||||||
- apt-get install -y -qq software-properties-common
|
# - apt-get install -y -qq software-properties-common
|
||||||
|
#
|
||||||
# Reliably add the 'universe' and 'multiverse' repositories
|
# # Reliably add the 'universe' and 'multiverse' repositories
|
||||||
- add-apt-repository universe
|
# - add-apt-repository universe
|
||||||
- add-apt-repository multiverse
|
# - add-apt-repository multiverse
|
||||||
|
#
|
||||||
# Update the package lists again to include the new repositories
|
# # Update the package lists again to include the new repositories
|
||||||
- apt-get update -qq
|
# - apt-get update -qq
|
||||||
|
#
|
||||||
# Install all required system packages for the build
|
# # Install all required system packages for the build
|
||||||
- apt-get install -y -qq
|
# - apt-get install -y -qq
|
||||||
build-essential
|
# build-essential
|
||||||
cmake
|
# cmake
|
||||||
ninja-build
|
# ninja-build
|
||||||
git
|
# git
|
||||||
pkg-config
|
# pkg-config
|
||||||
catch2
|
# catch2
|
||||||
libasound2-dev
|
# libasound2-dev
|
||||||
libpulse-dev
|
# libpulse-dev
|
||||||
libboost-all-dev
|
# libboost-all-dev
|
||||||
libavcodec-dev
|
# libavcodec-dev
|
||||||
libavfilter-dev
|
# libavfilter-dev
|
||||||
libavformat-dev
|
# libavformat-dev
|
||||||
libavutil-dev
|
# libavutil-dev
|
||||||
libswscale-dev
|
# libswscale-dev
|
||||||
llvm-17-dev
|
# llvm-17-dev
|
||||||
gamemode-dev
|
# gamemode-dev
|
||||||
libenet-dev
|
# libenet-dev
|
||||||
libfmt-dev
|
# libfmt-dev
|
||||||
liblz4-dev
|
# liblz4-dev
|
||||||
libopus-dev
|
# libopus-dev
|
||||||
libssl-dev
|
# libssl-dev
|
||||||
libusb-1.0-0-dev
|
# libusb-1.0-0-dev
|
||||||
libvulkan-dev
|
# libvulkan-dev
|
||||||
nlohmann-json3-dev
|
# nlohmann-json3-dev
|
||||||
zlib1g-dev
|
# zlib1g-dev
|
||||||
libzstd-dev
|
# libzstd-dev
|
||||||
libopenal-dev
|
# libopenal-dev
|
||||||
libedit-dev
|
# libedit-dev
|
||||||
libcurl4-openssl-dev
|
# libcurl4-openssl-dev
|
||||||
libstb-dev
|
# libstb-dev
|
||||||
libcubeb-dev
|
# libcubeb-dev
|
||||||
libspeexdsp-dev
|
# libspeexdsp-dev
|
||||||
libva-dev
|
# libva-dev
|
||||||
glslang-tools
|
# glslang-tools
|
||||||
libx11-dev
|
# libx11-dev
|
||||||
|
#
|
||||||
|
|
||||||
script:
|
# script:
|
||||||
- git submodule deinit --all --force || true
|
# - git submodule deinit --all --force || true
|
||||||
- git submodule update --init --recursive --force
|
# - git submodule update --init --recursive --force
|
||||||
- cmake -B build-test -S . -DCMAKE_BUILD_TYPE=Debug -DCITRON_TESTS=ON -DENABLE_QT=OFF -DENABLE_SDL2=OFF -DENABLE_WEB_SERVICE=OFF
|
# - cmake -B build-test -S . -DCMAKE_BUILD_TYPE=Debug -DCITRON_TESTS=ON -DENABLE_QT=OFF -DENABLE_SDL2=OFF -DENABLE_WEB_SERVICE=OFF
|
||||||
- cmake --build build-test --config Debug --parallel $CMAKE_BUILD_PARALLEL_LEVEL
|
# - cmake --build build-test --config Debug --parallel $CMAKE_BUILD_PARALLEL_LEVEL
|
||||||
- cd build-test
|
# - cd build-test
|
||||||
- ctest --output-on-failure
|
# - ctest --output-on-failure
|
||||||
artifacts:
|
# artifacts:
|
||||||
reports:
|
# reports:
|
||||||
junit: build-test/Testing/**/*.xml
|
# junit: build-test/Testing/**/*.xml
|
||||||
expire_in: 1 week
|
# expire_in: 1 week
|
||||||
only:
|
# only:
|
||||||
- main
|
# - main
|
||||||
- master
|
# - master
|
||||||
- develop
|
# - develop
|
||||||
- ci-fixes
|
# - ci-fixes
|
||||||
- merge_requests
|
# - merge_requests
|
||||||
|
|
||||||
# Package Release
|
# # Package Release
|
||||||
package-release:
|
# package-release:
|
||||||
stage: package
|
# stage: package
|
||||||
image: ubuntu:24.04
|
# image: ubuntu:24.04
|
||||||
tags:
|
# tags:
|
||||||
- citron-build
|
# - citron-build
|
||||||
dependencies:
|
# dependencies:
|
||||||
- build-linux
|
# - build-linux
|
||||||
script:
|
# script:
|
||||||
- mkdir -p release
|
# - mkdir -p release
|
||||||
- echo "Creating release package..."
|
# - echo "Creating release package..."
|
||||||
- tar -czf citron-release-$(date +%Y%m%d).tar.gz release/ || true
|
# - tar -czf citron-release-$(date +%Y%m%d).tar.gz release/ || true
|
||||||
artifacts:
|
# artifacts:
|
||||||
paths:
|
# paths:
|
||||||
- citron-release-*.tar.gz
|
# - citron-release-*.tar.gz
|
||||||
expire_in: 1 month
|
# expire_in: 1 month
|
||||||
only:
|
# only:
|
||||||
- main
|
# - main
|
||||||
- master
|
# - master
|
||||||
- develop
|
# - develop
|
||||||
- ci-fixes
|
# - ci-fixes
|
||||||
- tags
|
# - tags
|
||||||
Reference in New Issue
Block a user