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/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
 | 
						|
 | 
						|
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:b2be4b51d1d81548ca48e2f2b8f67356b880c96d" }'
 | 
						|
          - os: heavy
 | 
						|
            conan_profile: gcc
 | 
						|
            build_type: Debug
 | 
						|
            static: true
 | 
						|
            container: '{ "image": "ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d" }'
 | 
						|
          - os: heavy
 | 
						|
            conan_profile: gcc.ubsan
 | 
						|
            build_type: Release
 | 
						|
            static: false
 | 
						|
            container: '{ "image": "ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d" }'
 | 
						|
 | 
						|
    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 }}
 | 
						|
      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:b2be4b51d1d81548ca48e2f2b8f67356b880c96d" }'
 | 
						|
            static: true
 | 
						|
          - os: macos15
 | 
						|
            conan_profile: apple-clang
 | 
						|
            container: ""
 | 
						|
            static: false
 | 
						|
    uses: ./.github/workflows/reusable-build.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/reusable-release.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 }}/
 |