mirror of
https://github.com/XRPLF/rippled.git
synced 2026-02-06 15:05:31 +00:00
This change ensures that the `on-pr` and `on-trigger` workflows run when the generate-version action is modified.
89 lines
3.4 KiB
YAML
89 lines
3.4 KiB
YAML
# This workflow runs all workflows to build and test the code on various Linux
|
|
# flavors, as well as on MacOS and Windows, on a scheduled basis, on merge into
|
|
# the 'develop' or 'release*' branches, or when requested manually. Upon pushes
|
|
# to the develop branch it also uploads the libxrpl recipe to the Conan remote.
|
|
name: Trigger
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- "develop"
|
|
- "release*"
|
|
paths:
|
|
# These paths are unique to `on-trigger.yml`.
|
|
- ".github/workflows/on-trigger.yml"
|
|
|
|
# Keep the paths below in sync with those in `on-pr.yml`.
|
|
- ".github/actions/build-deps/**"
|
|
- ".github/actions/build-test/**"
|
|
- ".github/actions/generate-version/**"
|
|
- ".github/actions/setup-conan/**"
|
|
- ".github/scripts/strategy-matrix/**"
|
|
- ".github/workflows/reusable-build.yml"
|
|
- ".github/workflows/reusable-build-test-config.yml"
|
|
- ".github/workflows/reusable-build-test.yml"
|
|
- ".github/workflows/reusable-strategy-matrix.yml"
|
|
- ".github/workflows/reusable-test.yml"
|
|
- ".github/workflows/reusable-upload-recipe.yml"
|
|
- ".codecov.yml"
|
|
- "cmake/**"
|
|
- "conan/**"
|
|
- "external/**"
|
|
- "include/**"
|
|
- "src/**"
|
|
- "tests/**"
|
|
- "CMakeLists.txt"
|
|
- "conanfile.py"
|
|
- "conan.lock"
|
|
|
|
# Run at 06:32 UTC on every day of the week from Monday through Friday. This
|
|
# will force all dependencies to be rebuilt, which is useful to verify that
|
|
# all dependencies can be built successfully. Only the dependencies that
|
|
# are actually missing from the remote will be uploaded.
|
|
schedule:
|
|
- cron: "32 6 * * 1-5"
|
|
|
|
# Run when manually triggered via the GitHub UI or API.
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
# When a PR is merged into the develop branch it will be assigned a unique
|
|
# group identifier, so execution will continue even if another PR is merged
|
|
# while it is still running. In all other cases the group identifier is shared
|
|
# per branch, so that any in-progress runs are cancelled when a new commit is
|
|
# pushed.
|
|
group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/develop' && github.sha || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
build-test:
|
|
uses: ./.github/workflows/reusable-build-test.yml
|
|
strategy:
|
|
fail-fast: ${{ github.event_name == 'merge_group' }}
|
|
matrix:
|
|
os: [linux, macos, windows]
|
|
with:
|
|
# Enable ccache only for events targeting the XRPLF repository, since
|
|
# other accounts will not have access to our remote cache storage.
|
|
# However, we do not enable ccache for events targeting a release branch,
|
|
# to protect against the rare case that the output produced by ccache is
|
|
# not identical to a regular compilation.
|
|
ccache_enabled: ${{ github.repository_owner == 'XRPLF' && !startsWith(github.ref, 'refs/heads/release') }}
|
|
os: ${{ matrix.os }}
|
|
strategy_matrix: ${{ github.event_name == 'schedule' && 'all' || 'minimal' }}
|
|
secrets:
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
upload-recipe:
|
|
needs: build-test
|
|
# Only run when pushing to the develop branch in the XRPLF repository.
|
|
if: ${{ github.repository_owner == 'XRPLF' && github.event_name == 'push' && github.ref == 'refs/heads/develop' }}
|
|
uses: ./.github/workflows/reusable-upload-recipe.yml
|
|
secrets:
|
|
remote_username: ${{ secrets.CONAN_REMOTE_USERNAME }}
|
|
remote_password: ${{ secrets.CONAN_REMOTE_PASSWORD }}
|