mirror of
https://github.com/XRPLF/clio.git
synced 2026-09-27 23:48:08 +00:00
Note: some files are taken exactly as they are in rippled, so changing something here wouldn't be great (because they will drift)
174 lines
5.2 KiB
YAML
174 lines
5.2 KiB
YAML
name: Nightly release
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 8 * * 1-5"
|
|
workflow_dispatch:
|
|
pull_request:
|
|
paths:
|
|
- .github/workflows/nightly.yml
|
|
|
|
- .github/workflows/reusable-release.yml
|
|
- .github/workflows/reusable-build-test.yml
|
|
- .github/workflows/reusable-build.yml
|
|
- .github/workflows/reusable-test.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
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
get_date:
|
|
name: Get Date
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
date: ${{ steps.get_date.outputs.date }}
|
|
steps:
|
|
- name: Get current date
|
|
id: get_date
|
|
run: |
|
|
echo "date=$(date +'%Y%m%d')" >>$GITHUB_OUTPUT
|
|
|
|
build-and-test:
|
|
name: Build and Test
|
|
needs: get_date
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: macos-26-apple-clang-21
|
|
compiler: apple-clang
|
|
build_type: Release
|
|
- os: heavy
|
|
compiler: gcc
|
|
build_type: Release
|
|
container: '{ "image": "ghcr.io/xrplf/xrpld/nix-ubuntu:sha-060957e" }'
|
|
- os: heavy
|
|
compiler: gcc
|
|
build_type: Debug
|
|
container: '{ "image": "ghcr.io/xrplf/xrpld/nix-ubuntu:sha-060957e" }'
|
|
- os: heavy
|
|
compiler: gcc
|
|
sanitizers: undefinedbehavior
|
|
build_type: Release
|
|
container: '{ "image": "ghcr.io/xrplf/xrpld/nix-ubuntu:sha-060957e" }'
|
|
|
|
uses: ./.github/workflows/reusable-build-test.yml
|
|
with:
|
|
runs_on: ${{ matrix.os }}
|
|
container: ${{ matrix.container }}
|
|
compiler: ${{ matrix.compiler }}
|
|
sanitizers: ${{ matrix.sanitizers }}
|
|
build_type: ${{ matrix.build_type }}
|
|
run_unit_tests: true
|
|
run_integration_tests: true
|
|
upload_clio_server: true
|
|
download_ccache: false
|
|
upload_ccache: false
|
|
version: nightly-${{ needs.get_date.outputs.date }}
|
|
|
|
package:
|
|
name: Build debian package
|
|
needs: get_date
|
|
|
|
uses: ./.github/workflows/reusable-build.yml
|
|
with:
|
|
runs_on: heavy
|
|
container: '{ "image": "ghcr.io/xrplf/xrpld/nix-ubuntu:sha-060957e" }'
|
|
compiler: gcc
|
|
build_type: Release
|
|
download_ccache: false
|
|
upload_ccache: false
|
|
code_coverage: false
|
|
upload_clio_server: false
|
|
package: true
|
|
version: nightly-${{ needs.get_date.outputs.date }}
|
|
targets: package
|
|
analyze_build_time: false
|
|
|
|
analyze_build_time:
|
|
name: Analyze Build Time
|
|
needs: get_date
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: heavy
|
|
compiler: clang
|
|
container: '{ "image": "ghcr.io/xrplf/xrpld/nix-ubuntu:sha-060957e" }'
|
|
- os: macos-26-apple-clang-21
|
|
compiler: apple-clang
|
|
container: ""
|
|
uses: ./.github/workflows/reusable-build.yml
|
|
with:
|
|
runs_on: ${{ matrix.os }}
|
|
container: ${{ matrix.container }}
|
|
compiler: ${{ matrix.compiler }}
|
|
build_type: Release
|
|
download_ccache: false
|
|
upload_ccache: false
|
|
code_coverage: false
|
|
upload_clio_server: false
|
|
targets: all
|
|
analyze_build_time: true
|
|
version: nightly-${{ needs.get_date.outputs.date }}
|
|
|
|
nightly_release:
|
|
needs: [build-and-test, package, get_date]
|
|
uses: ./.github/workflows/reusable-release.yml
|
|
with:
|
|
delete_pattern: "nightly-*"
|
|
prerelease: true
|
|
title: "Clio development build (nightly-${{ needs.get_date.outputs.date }})"
|
|
version: nightly-${{ needs.get_date.outputs.date }}
|
|
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-${{ needs.get_date.outputs.date }}>
|
|
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
|
|
push_image: ${{ github.repository == 'XRPLF/clio' && 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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- name: Create an issue
|
|
uses: XRPLF/actions/create-issue@2b8bc36af85b88bca0dd7bfac2e2dc05f94ad712
|
|
with:
|
|
title: "Nightly release failed 🌙"
|
|
body: "Please check the nightly release workflow for details."
|
|
labels: "bug"
|
|
assignees: "godexsoft,kuznetsss,mathbunnyru"
|