Compare commits

..

27 Commits

Author SHA1 Message Date
tequ
1d9eed58b5 default shell bash 2025-11-27 14:46:03 +09:00
tequ
7d1622e54d conan cache 2025-11-27 13:41:52 +09:00
tequ
be3c3d2bde echo conan profile path 2025-11-27 13:27:47 +09:00
tequ
0fba76363a debug containers 2025-11-27 13:17:02 +09:00
tequ
466491e3f5 try container name 2025-11-27 12:59:49 +09:00
tequ
177a9f4c91 Add conan_profiles_path input to xahau-ga-dependencies action and update workflow to use it 2025-11-27 12:13:41 +09:00
tequ
8f272aa950 revert matrix conf 2025-11-27 11:44:31 +09:00
tequ
73b78625c0 test 2025-11-27 10:59:16 +09:00
tequ
5cc7e6dc19 fix clang_gcc_toolchain to 13 2025-11-27 10:40:27 +09:00
tequ
95f753b1d3 Merge branch 'dev' into self-hosted 2025-11-27 10:32:46 +09:00
tequ
f5857b4e4f try comment out clang_gcc_toolchain 2025-11-27 10:30:11 +09:00
Niq Dudfield
f6a4e8f36d Wind back macOS runner version (#635) 2025-11-27 09:39:27 +10:00
tequ
70bbe83525 Revert "Update workers to self hosted" (#638) 2025-11-27 09:38:45 +10:00
tequ
02112928ec add cache_enabled option to xahau-ga-build 2025-11-27 01:40:00 +09:00
tequ
c815533e6a disabled action/cache in self hosted / ccache 100GB 2025-11-27 01:34:07 +09:00
tequ
915fcaaa95 install sqlite3 2025-11-27 01:18:37 +09:00
tequ
55a938a9b3 fix container volume path 2025-11-27 01:12:10 +09:00
tequ
1d34d880ec . 2025-11-27 00:58:14 +09:00
tequ
97be8fa41e try container 2025-11-27 00:17:29 +09:00
tequ
94e0cef62f use pipx instead pip3 2025-11-27 00:08:21 +09:00
tequ
f6f96865c1 use only 24.04 2025-11-26 23:35:20 +09:00
tequ
2e4e5eaff1 install cmake 2025-11-26 02:18:26 +09:00
tequ
2e96ae905d install python if not installed (ubuntu/self-hosted) 2025-11-26 02:11:40 +09:00
tequ
d02af3c891 rever macos runner 2025-11-26 01:37:36 +09:00
tequ
6f559a6032 use hosted runner in light workflow 2025-11-26 00:18:08 +09:00
tequ
9980e8f9be fix to use self-hosted for subsequent jobs. 2025-11-26 00:17:38 +09:00
Wietse Wind
fe17dde005 Update workers to self hosted 2025-11-26 00:14:15 +09:00
6 changed files with 60 additions and 17 deletions

View File

@@ -28,6 +28,10 @@ inputs:
description: 'Cache version for invalidation'
required: false
default: '1'
cache_enabled:
description: 'Whether to use cache'
required: false
default: 'true'
ccache_enabled:
description: 'Whether to use ccache'
required: false
@@ -72,7 +76,7 @@ runs:
echo "name=${SAFE_BRANCH}" >> $GITHUB_OUTPUT
- name: Restore ccache directory for main branch
if: inputs.ccache_enabled == 'true'
if: inputs.cache_enabled == 'true' && inputs.ccache_enabled == 'true'
id: ccache-restore
uses: ./.github/actions/xahau-ga-cache-restore
with:
@@ -84,7 +88,7 @@ runs:
cache-type: ccache-main
- name: Restore ccache directory for current branch
if: inputs.ccache_enabled == 'true' && steps.safe-branch.outputs.name != inputs.main_branch
if: inputs.cache_enabled == 'true' && inputs.ccache_enabled == 'true' && steps.safe-branch.outputs.name != inputs.main_branch
id: ccache-restore-current-branch
uses: ./.github/actions/xahau-ga-cache-restore
with:
@@ -237,14 +241,14 @@ runs:
run: ccache -s
- name: Save ccache directory for main branch
if: success() && inputs.ccache_enabled == 'true' && steps.safe-branch.outputs.name == inputs.main_branch
if: success() && inputs.cache_enabled == 'true' && inputs.ccache_enabled == 'true' && steps.safe-branch.outputs.name == inputs.main_branch
uses: actions/cache/save@v4
with:
path: ~/.ccache-main
key: ${{ steps.ccache-restore.outputs.cache-primary-key }}
- name: Save ccache directory for current branch
if: success() && inputs.ccache_enabled == 'true' && steps.safe-branch.outputs.name != inputs.main_branch
if: success() && inputs.cache_enabled == 'true' && inputs.ccache_enabled == 'true' && steps.safe-branch.outputs.name != inputs.main_branch
uses: actions/cache/save@v4
with:
path: ~/.ccache-current

View File

@@ -79,6 +79,11 @@ runs:
- name: Configure Conan
shell: bash
run: |
mkdir -p /.conan-cache/conan2 /.conan-cache/conan2_download /.conan-cache/conan2_sources
echo 'core.cache:storage_path=/.conan-cache/conan2' > ~/.conan2/global.conf
echo 'core.download:download_cache=/.conan-cache/conan2_download' >> ~/.conan2/global.conf
echo 'core.sources:download_cache=/.conan-cache/conan2_sources' >> ~/.conan2/global.conf
# Create the default profile directory if it doesn't exist
mkdir -p ~/.conan2/profiles

View File

@@ -18,10 +18,11 @@ runs:
using: 'composite'
steps:
- name: Get commit message and set environment variable
shell: python
shell: bash
env:
GH_TOKEN: ${{ github.token }}
run: |
python3 - << 'PY'
import json
import os
import secrets
@@ -72,3 +73,4 @@ runs:
print(f"✓ XAHAU_GA_COMMIT_MSG set (available to all subsequent steps)")
print("==========================================")
PY

View File

@@ -33,7 +33,7 @@ jobs:
fetch-depth: 2 # Only get the last 2 commits, to avoid fetching all history
build:
runs-on: [self-hosted, vanity]
runs-on: [self-hosted, xahaud-build]
needs: [checkout]
defaults:
run:
@@ -74,7 +74,7 @@ jobs:
fi
tests:
runs-on: [self-hosted, vanity]
runs-on: [self-hosted, xahaud-build]
needs: [build, checkout]
defaults:
run:
@@ -84,7 +84,7 @@ jobs:
run: /bin/bash docker-unit-tests.sh
cleanup:
runs-on: [self-hosted, vanity]
runs-on: [self-hosted, xahaud-build]
needs: [tests, checkout]
if: always()
steps:

View File

@@ -20,7 +20,7 @@ jobs:
- Ninja
configuration:
- Debug
runs-on: macos-15-xlarge
runs-on: macos-15
env:
build_dir: .build
# Bump this number to invalidate all caches globally.

View File

@@ -14,7 +14,7 @@ concurrency:
jobs:
matrix-setup:
runs-on: ubuntu-latest
runs-on: [self-hosted, generic, 24.04]
container: python:3-slim
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
@@ -176,7 +176,19 @@ jobs:
build:
needs: matrix-setup
runs-on: ubuntu-latest
runs-on: [self-hosted, generic, 24.04]
container:
image: ubuntu:24.04
volumes:
- /home/runner/.conan-cache:/.conan-cache
- /home/runner/.ccache-main:/github/home/.ccache-main
- /home/runner/.ccache-current:/github/home/.ccache-current
options: >-
--privileged
--name xahaud-ci-${{ matrix.compiler_id }}
defaults:
run:
shell: bash
outputs:
artifact_name: ${{ steps.set-artifact-name.outputs.artifact_name }}
strategy:
@@ -191,6 +203,17 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Install python if not installed
run: |
if ! which python3 > /dev/null 2>&1; then
apt-get update
apt-get install -y python3 python-is-python3
fi
if ! which pipx > /dev/null 2>&1; then
apt-get install -y pipx
pipx ensurepath
fi
- name: Get commit message
id: get-commit-message
uses: ./.github/actions/xahau-ga-get-commit-message
@@ -201,13 +224,18 @@ jobs:
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y ninja-build ${{ matrix.cc }} ${{ matrix.cxx }} ccache
apt-get update
apt-get install -y software-properties-common
add-apt-repository ppa:ubuntu-toolchain-r/test -y
apt update
apt-get install -y cmake ninja-build ${{ matrix.cc }} ${{ matrix.cxx }} ccache
apt-get install -y perl # for openssl build
apt-get install -y libsqlite3-dev # for xahaud build
# Install the specific GCC version needed for Clang
if [ -n "${{ matrix.clang_gcc_toolchain }}" ]; then
echo "=== Installing GCC ${{ matrix.clang_gcc_toolchain }} for Clang ==="
sudo apt-get install -y gcc-${{ matrix.clang_gcc_toolchain }} g++-${{ matrix.clang_gcc_toolchain }} libstdc++-${{ matrix.clang_gcc_toolchain }}-dev
apt-get install -y gcc-${{ matrix.clang_gcc_toolchain }} g++-${{ matrix.clang_gcc_toolchain }} libstdc++-${{ matrix.clang_gcc_toolchain }}-dev
echo "=== GCC versions available after installation ==="
ls -la /usr/lib/gcc/x86_64-linux-gnu/ | grep -E "^d"
@@ -238,7 +266,7 @@ jobs:
echo "Hiding GCC $version -> renaming to $counter (will be seen as GCC version $counter)"
# Safety check: ensure target doesn't already exist
if [ ! -e "/usr/lib/gcc/x86_64-linux-gnu/$counter" ]; then
sudo mv "$dir" "/usr/lib/gcc/x86_64-linux-gnu/$counter"
mv "$dir" "/usr/lib/gcc/x86_64-linux-gnu/$counter"
else
echo "ERROR: Cannot rename GCC $version - /usr/lib/gcc/x86_64-linux-gnu/$counter already exists"
exit 1
@@ -262,11 +290,12 @@ jobs:
# Install libc++ dev packages if using libc++ (not needed for libstdc++)
if [ "${{ matrix.stdlib }}" = "libcxx" ]; then
sudo apt-get install -y libc++-${{ matrix.compiler_version }}-dev libc++abi-${{ matrix.compiler_version }}-dev
apt-get install -y libc++-${{ matrix.compiler_version }}-dev libc++abi-${{ matrix.compiler_version }}-dev
fi
# Install Conan 2
pip install --upgrade "conan>=2.0,<3"
pipx install "conan>=2.0,<3"
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Check environment
run: |
@@ -293,6 +322,7 @@ jobs:
cc: ${{ matrix.cc }}
cxx: ${{ matrix.cxx }}
stdlib: ${{ matrix.stdlib }}
cache_enabled: 'false' # Disable caching for self hosted runner
- name: Build
uses: ./.github/actions/xahau-ga-build
@@ -307,6 +337,8 @@ jobs:
main_branch: ${{ env.MAIN_BRANCH_NAME }}
stdlib: ${{ matrix.stdlib }}
clang_gcc_toolchain: ${{ matrix.clang_gcc_toolchain || '' }}
cache_enabled: 'false' # Disable caching for self hosted runner
ccache_max_size: '100G'
- name: Set artifact name
id: set-artifact-name