mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-04 10:45:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			121 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Nix - GA Runner
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches: ["dev", "candidate", "release"]
 | 
						|
  pull_request:
 | 
						|
    branches: ["dev", "candidate", "release"]
 | 
						|
 | 
						|
concurrency:
 | 
						|
  group: ${{ github.workflow }}-${{ github.ref }}
 | 
						|
  cancel-in-progress: true
 | 
						|
 | 
						|
jobs:
 | 
						|
  build-job:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    outputs:
 | 
						|
      artifact_name: ${{ steps.set-artifact-name.outputs.artifact_name }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        compiler: [gcc]
 | 
						|
        configuration: [Debug]
 | 
						|
        include:
 | 
						|
          - compiler: gcc
 | 
						|
            cc: gcc-13
 | 
						|
            cxx: g++-13
 | 
						|
            compiler_id: gcc-13
 | 
						|
            compiler_version: 13
 | 
						|
    env:
 | 
						|
      build_dir: .build
 | 
						|
      # Bump this number to invalidate all caches globally.
 | 
						|
      CACHE_VERSION: 2
 | 
						|
      MAIN_BRANCH_NAME: dev
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v4
 | 
						|
 | 
						|
      - name: Install build dependencies
 | 
						|
        run: |
 | 
						|
          sudo apt-get update
 | 
						|
          sudo apt-get install -y ninja-build ${{ matrix.cc }} ${{ matrix.cxx }} ccache
 | 
						|
          # Install specific Conan version needed
 | 
						|
          pip install --upgrade "conan<2"
 | 
						|
 | 
						|
      - name: Configure ccache
 | 
						|
        uses: ./.github/actions/xahau-configure-ccache
 | 
						|
        with:
 | 
						|
          max_size: 2G
 | 
						|
          hash_dir: true
 | 
						|
          compiler_check: content
 | 
						|
 | 
						|
      - name: Configure Conan
 | 
						|
        run: |
 | 
						|
          conan profile new default --detect || true # Ignore error if profile exists
 | 
						|
          conan profile update settings.compiler.cppstd=20 default
 | 
						|
          conan profile update settings.compiler=${{ matrix.compiler }} default
 | 
						|
          conan profile update settings.compiler.libcxx=libstdc++11 default
 | 
						|
          conan profile update env.CC=/usr/bin/${{ matrix.cc }} default
 | 
						|
          conan profile update env.CXX=/usr/bin/${{ matrix.cxx }} default
 | 
						|
          conan profile update conf.tools.build:compiler_executables='{"c": "/usr/bin/${{ matrix.cc }}", "cpp": "/usr/bin/${{ matrix.cxx }}"}' default
 | 
						|
 | 
						|
          # Set compiler version from matrix
 | 
						|
          conan profile update settings.compiler.version=${{ matrix.compiler_version }} default
 | 
						|
          # Display profile for verification
 | 
						|
          conan profile show default
 | 
						|
 | 
						|
      - name: Check environment
 | 
						|
        run: |
 | 
						|
          echo "PATH:"
 | 
						|
          echo "${PATH}" | tr ':' '\n'
 | 
						|
          which conan && conan --version || echo "Conan not found"
 | 
						|
          which cmake && cmake --version || echo "CMake not found"
 | 
						|
          which ${{ matrix.cc }} && ${{ matrix.cc }} --version || echo "${{ matrix.cc }} not found"
 | 
						|
          which ${{ matrix.cxx }} && ${{ matrix.cxx }} --version || echo "${{ matrix.cxx }} not found"
 | 
						|
          which ccache && ccache --version || echo "ccache not found"
 | 
						|
          echo "---- Full Environment ----"
 | 
						|
          env
 | 
						|
 | 
						|
      - name: Install dependencies
 | 
						|
        uses: ./.github/actions/xahau-ga-dependencies
 | 
						|
        with:
 | 
						|
          configuration: ${{ matrix.configuration }}
 | 
						|
          build_dir: ${{ env.build_dir }}
 | 
						|
          compiler-id: ${{ matrix.compiler_id }}
 | 
						|
          cache_version: ${{ env.CACHE_VERSION }}
 | 
						|
          main_branch: ${{ env.MAIN_BRANCH_NAME }}
 | 
						|
 | 
						|
      - name: Build
 | 
						|
        uses: ./.github/actions/xahau-ga-build
 | 
						|
        with:
 | 
						|
          generator: Ninja
 | 
						|
          configuration: ${{ matrix.configuration }}
 | 
						|
          build_dir: ${{ env.build_dir }}
 | 
						|
          cc: ${{ matrix.cc }}
 | 
						|
          cxx: ${{ matrix.cxx }}
 | 
						|
          compiler-id: ${{ matrix.compiler_id }}
 | 
						|
          cache_version: ${{ env.CACHE_VERSION }}
 | 
						|
          main_branch: ${{ env.MAIN_BRANCH_NAME }}
 | 
						|
 | 
						|
      - name: Set artifact name
 | 
						|
        id: set-artifact-name
 | 
						|
        run: |
 | 
						|
          ARTIFACT_NAME="build-output-nix-${{ github.run_id }}-${{ matrix.compiler }}-${{ matrix.configuration }}"
 | 
						|
          echo "artifact_name=${ARTIFACT_NAME}" >> "$GITHUB_OUTPUT"
 | 
						|
          echo "Using artifact name: ${ARTIFACT_NAME}"
 | 
						|
 | 
						|
      - name: Debug build directory
 | 
						|
        run: |
 | 
						|
          echo "Checking build directory contents: ${{ env.build_dir }}"
 | 
						|
          ls -la ${{ env.build_dir }} || echo "Build directory not found or empty"
 | 
						|
 | 
						|
      - name: Run tests
 | 
						|
        run: |
 | 
						|
          # Ensure the binary exists before trying to run
 | 
						|
          if [ -f "${{ env.build_dir }}/rippled" ]; then
 | 
						|
            ${{ env.build_dir }}/rippled --unittest --unittest-jobs $(nproc)
 | 
						|
          else
 | 
						|
             echo "Error: rippled executable not found in ${{ env.build_dir }}"
 | 
						|
             exit 1
 | 
						|
          fi
 |