mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-04 10:45:50 +00:00
87 lines
2.7 KiB
YAML
87 lines
2.7 KiB
YAML
name: dependencies
|
|
description: 'Installs build dependencies with caching'
|
|
|
|
inputs:
|
|
configuration:
|
|
description: 'Build configuration (Debug, Release, etc.)'
|
|
required: true
|
|
build_dir:
|
|
description: 'Directory to build dependencies in'
|
|
required: false
|
|
default: '.build'
|
|
compiler-id:
|
|
description: 'Unique identifier for compiler/version combination used for cache keys'
|
|
required: false
|
|
default: ''
|
|
cache_version:
|
|
description: 'Cache version for invalidation'
|
|
required: false
|
|
default: '1'
|
|
cache_enabled:
|
|
description: 'Whether to use caching'
|
|
required: false
|
|
default: 'true'
|
|
main_branch:
|
|
description: 'Main branch name for restore keys'
|
|
required: false
|
|
default: 'dev'
|
|
|
|
outputs:
|
|
cache-hit:
|
|
description: 'Whether there was a cache hit'
|
|
value: ${{ steps.cache-restore-conan.outputs.cache-hit }}
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- name: Generate safe branch name
|
|
if: inputs.cache_enabled == 'true'
|
|
id: safe-branch
|
|
shell: bash
|
|
run: |
|
|
SAFE_BRANCH=$(echo "${{ github.ref_name }}" | tr -c 'a-zA-Z0-9_.-' '-')
|
|
echo "name=${SAFE_BRANCH}" >> $GITHUB_OUTPUT
|
|
|
|
- name: Restore Conan cache
|
|
if: inputs.cache_enabled == 'true'
|
|
id: cache-restore-conan
|
|
uses: actions/cache/restore@v4
|
|
with:
|
|
path: |
|
|
~/.conan
|
|
~/.conan2
|
|
key: ${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ hashFiles('**/conanfile.txt', '**/conanfile.py') }}-${{ inputs.configuration }}
|
|
restore-keys: |
|
|
${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ hashFiles('**/conanfile.txt', '**/conanfile.py') }}-
|
|
${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-
|
|
${{ runner.os }}-conan-v${{ inputs.cache_version }}-
|
|
|
|
- name: Export custom recipes
|
|
shell: bash
|
|
run: |
|
|
conan export external/snappy snappy/1.1.10@xahaud/stable
|
|
conan export external/soci soci/4.0.3@xahaud/stable
|
|
|
|
- name: Install dependencies
|
|
shell: bash
|
|
run: |
|
|
# Create build directory
|
|
mkdir -p ${{ inputs.build_dir }}
|
|
cd ${{ inputs.build_dir }}
|
|
|
|
# Install dependencies using conan
|
|
conan install \
|
|
--output-folder . \
|
|
--build missing \
|
|
--settings build_type=${{ inputs.configuration }} \
|
|
..
|
|
|
|
- name: Save Conan cache
|
|
if: inputs.cache_enabled == 'true' && steps.cache-restore-conan.outputs.cache-hit != 'true'
|
|
uses: actions/cache/save@v4
|
|
with:
|
|
path: |
|
|
~/.conan
|
|
~/.conan2
|
|
key: ${{ steps.cache-restore-conan.outputs.cache-primary-key }}
|