Files
rippled/.github/workflows/main.yml
2025-07-27 10:42:53 -04:00

109 lines
3.5 KiB
YAML

# This workflow runs all workflows to check, build and test the project on
# various Linux flavors, as well as MacOS and Windows.
name: Main
# This workflow is triggered on every push to the repository, including pull
# requests. However, it will not run if the pull request is a draft unless it
# has the 'DraftRunCI' label. As GitHub Actions does not support such `if`
# conditions here, the individual jobs will check the pull request state and
# labels to determine whether to run or not. The workflows called by the jobs
# may also have their own conditions to partially or completely skip execution
# as needed.
on: push
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
env:
# The default build directory for the project.
BUILD_DIR: .build
# The Conan remote where the dependencies will be cached.
CONAN_REMOTE_NAME: xrplf
CONAN_REMOTE_URL: https://conan.ripplex.io
# The default runner for the jobs. This can be overridden in individual jobs.
RUNNER: ubuntu-latest
jobs:
check-clang-format:
if: github.event.pull_request.draft == false || contains(github.event.pull_request.labels.*.name, 'DraftRunCI')
uses: ./.github/workflows/check-clang-format.yml
with:
runner: ${{ env.RUNNER }}
check-levelization:
if: github.event.pull_request.draft == false || contains(github.event.pull_request.labels.*.name, 'DraftRunCI')
uses: ./.github/workflows/check-levelization.yml
with:
runner: ${{ env.RUNNER }}
debian:
needs:
- check-clang-format
- check-levelization
uses: ./.github/workflows/build-debian.yml
with:
build_dir: ${{ env.BUILD_DIR }}
conan_remote_name: ${{ env.CONAN_REMOTE_NAME }}
conan_remote_url: ${{ env.CONAN_REMOTE_URL }}
secrets:
conan_username: ${{ secrets.CONAN_USERNAME }}
conan_password: ${{ secrets.CONAN_PASSWORD }}
# rhel:
# needs:
# - check-clang-format
# - check-levelization
# uses: ./.github/workflows/build-rhel.yml
# with:
# build_dir: ${{ env.BUILD_DIR }}
# conan_remote_name: ${{ env.CONAN_REMOTE_NAME }}
# conan_remote_url: ${{ env.CONAN_REMOTE_URL }}
# secrets:
# conan_username: ${{ secrets.CONAN_USERNAME }}
# conan_password: ${{ secrets.CONAN_PASSWORD }}
#
# ubuntu:
# needs:
# - check-clang-format
# - check-levelization
# uses: ./.github/workflows/build-ubuntu.yml
# with:
# build_dir: ${{ env.BUILD_DIR }}
# conan_remote_name: ${{ env.CONAN_REMOTE_NAME }}
# conan_remote_url: ${{ env.CONAN_REMOTE_URL }}
# secrets:
# conan_username: ${{ secrets.CONAN_USERNAME }}
# conan_password: ${{ secrets.CONAN_PASSWORD }}
#
# macos:
# needs:
# - check-clang-format
# - check-levelization
# uses: ./.github/workflows/build-macos.yml
# with:
# build_dir: ${{ env.BUILD_DIR }}
# conan_remote_name: ${{ env.CONAN_REMOTE_NAME }}
# conan_remote_url: ${{ env.CONAN_REMOTE_URL }}
# secrets:
# conan_username: ${{ secrets.CONAN_USERNAME }}
# conan_password: ${{ secrets.CONAN_PASSWORD }}
#
# windows:
# needs:
# - check-clang-format
# - check-levelization
# uses: ./.github/workflows/build-windows.yml
# with:
# build_dir: ${{ env.BUILD_DIR }}
# conan_remote_name: ${{ env.CONAN_REMOTE_NAME }}
# conan_remote_url: ${{ env.CONAN_REMOTE_URL }}
# secrets:
# conan_username: ${{ secrets.CONAN_USERNAME }}
# conan_password: ${{ secrets.CONAN_PASSWORD }}