mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-04 11:55:51 +00:00
145 lines
4.3 KiB
YAML
145 lines
4.3 KiB
YAML
name: Nightly release
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 8 * * 1-5"
|
|
workflow_dispatch:
|
|
pull_request:
|
|
paths:
|
|
- .github/workflows/nightly.yml
|
|
|
|
- .github/workflows/release_impl.yml
|
|
- .github/workflows/build_and_test.yml
|
|
- .github/workflows/build_impl.yml
|
|
- .github/workflows/test_impl.yml
|
|
- .github/workflows/build_clio_docker_image.yml
|
|
|
|
- ".github/actions/**"
|
|
- "!.github/actions/code_coverage/**"
|
|
- .github/scripts/prepare-release-artifacts.sh
|
|
|
|
concurrency:
|
|
# Only cancel in-progress jobs or runs for the current workflow - matches against branch & tags
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-and-test:
|
|
name: Build and Test
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: macos15
|
|
conan_profile: apple-clang
|
|
build_type: Release
|
|
static: false
|
|
- os: heavy
|
|
conan_profile: gcc
|
|
build_type: Release
|
|
static: true
|
|
container: '{ "image": "ghcr.io/xrplf/clio-ci:384e79cd32f5f6c0ab9be3a1122ead41c5a7e67d" }'
|
|
- os: heavy
|
|
conan_profile: gcc
|
|
build_type: Debug
|
|
static: true
|
|
container: '{ "image": "ghcr.io/xrplf/clio-ci:384e79cd32f5f6c0ab9be3a1122ead41c5a7e67d" }'
|
|
- os: heavy
|
|
conan_profile: gcc.ubsan
|
|
build_type: Release
|
|
static: false
|
|
container: '{ "image": "ghcr.io/xrplf/clio-ci:384e79cd32f5f6c0ab9be3a1122ead41c5a7e67d" }'
|
|
|
|
uses: ./.github/workflows/build_and_test.yml
|
|
with:
|
|
runs_on: ${{ matrix.os }}
|
|
container: ${{ matrix.container }}
|
|
conan_profile: ${{ matrix.conan_profile }}
|
|
build_type: ${{ matrix.build_type }}
|
|
static: ${{ matrix.static }}
|
|
run_unit_tests: true
|
|
run_integration_tests: true
|
|
upload_clio_server: true
|
|
download_ccache: false
|
|
upload_ccache: false
|
|
|
|
analyze_build_time:
|
|
name: Analyze Build Time
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: heavy
|
|
conan_profile: clang
|
|
container: '{ "image": "ghcr.io/xrplf/clio-ci:384e79cd32f5f6c0ab9be3a1122ead41c5a7e67d" }'
|
|
static: true
|
|
- os: macos15
|
|
conan_profile: apple-clang
|
|
container: ""
|
|
static: false
|
|
uses: ./.github/workflows/build_impl.yml
|
|
with:
|
|
runs_on: ${{ matrix.os }}
|
|
container: ${{ matrix.container }}
|
|
conan_profile: ${{ matrix.conan_profile }}
|
|
build_type: Release
|
|
download_ccache: false
|
|
upload_ccache: false
|
|
code_coverage: false
|
|
static: ${{ matrix.static }}
|
|
upload_clio_server: false
|
|
targets: all
|
|
analyze_build_time: true
|
|
|
|
nightly_release:
|
|
needs: build-and-test
|
|
uses: ./.github/workflows/release_impl.yml
|
|
with:
|
|
overwrite_release: true
|
|
prerelease: true
|
|
title: "Clio development (nightly) build"
|
|
version: nightly
|
|
header: >
|
|
> **Note:** Please remember that this is a development release and it is not recommended for production use.
|
|
|
|
Changelog (including previous releases): <https://github.com/XRPLF/clio/commits/nightly>
|
|
generate_changelog: false
|
|
draft: false
|
|
|
|
build_and_publish_docker_image:
|
|
uses: ./.github/workflows/build_clio_docker_image.yml
|
|
needs: build-and-test
|
|
secrets: inherit
|
|
with:
|
|
tags: |
|
|
type=raw,value=nightly
|
|
type=raw,value=${{ github.sha }}
|
|
artifact_name: clio_server_Linux_Release_gcc
|
|
strip_binary: true
|
|
publish_image: ${{ github.event_name != 'pull_request' }}
|
|
|
|
create_issue_on_failure:
|
|
needs: [build-and-test, nightly_release, build_and_publish_docker_image]
|
|
if: ${{ always() && contains(needs.*.result, 'failure') && github.event_name != 'pull_request' }}
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
contents: write
|
|
issues: write
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Create an issue
|
|
uses: ./.github/actions/create_issue
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
with:
|
|
title: "Nightly release failed 🌙"
|
|
body: >
|
|
Nightly release failed:
|
|
|
|
Workflow: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/
|