name: Build on: push: branches: [release/*, develop] pull_request: branches: [release/*, develop] paths: - .github/workflows/build.yml - .github/workflows/reusable-build-test.yml - .github/workflows/reusable-build.yml - .github/workflows/reusable-test.yml - .github/workflows/reusable-upload-coverage-report.yml - ".github/actions/**" - "!.github/actions/build-docker-image/**" - "!.github/actions/create-issue/**" - CMakeLists.txt - conanfile.py - conan.lock - "cmake/**" - "src/**" - "tests/**" - docs/config-description.md workflow_dispatch: concurrency: # Develop branch: Each run gets unique group (using run_number) for parallel execution # Other branches: Shared group with cancel-in-progress to stop old runs when new commits are pushed group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref == 'refs/heads/develop' && github.run_number || 'branch' }} cancel-in-progress: true jobs: build-and-test: name: Build and Test strategy: fail-fast: false matrix: os: [heavy] conan_profile: [gcc, clang] build_type: [Release, Debug] container: [ '{ "image": "ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d" }', ] static: [true] include: - os: macos15 conan_profile: apple-clang build_type: Release container: "" static: false uses: ./.github/workflows/reusable-build-test.yml with: runs_on: ${{ matrix.os }} container: ${{ matrix.container }} conan_profile: ${{ matrix.conan_profile }} build_type: ${{ matrix.build_type }} download_ccache: true upload_ccache: true static: ${{ matrix.static }} run_unit_tests: true run_integration_tests: false upload_clio_server: true code_coverage: name: Run Code Coverage uses: ./.github/workflows/reusable-build.yml with: runs_on: heavy container: '{ "image": "ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d" }' conan_profile: gcc build_type: Debug download_ccache: true upload_ccache: false code_coverage: true static: true upload_clio_server: false targets: all analyze_build_time: false secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} package: name: Build packages uses: ./.github/workflows/reusable-build.yml with: runs_on: heavy container: '{ "image": "ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d" }' conan_profile: gcc build_type: Release download_ccache: true upload_ccache: false code_coverage: false static: true upload_clio_server: false package: true targets: package analyze_build_time: false check_config: name: Check Config Description needs: build-and-test runs-on: heavy container: image: ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: clio_server_Linux_Release_gcc - name: Compare Config Description shell: bash run: | repoConfigFile=docs/config-description.md configDescriptionFile=config_description_new.md chmod +x ./clio_server ./clio_server -d "${configDescriptionFile}" diff -u "${repoConfigFile}" "${configDescriptionFile}"