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: default_apple_clang build_type: Release static: false - os: heavy conan_profile: gcc build_type: Release static: true container: '{ "image": "ghcr.io/xrplf/clio-ci:latest" }' - os: heavy conan_profile: gcc build_type: Debug static: true container: '{ "image": "ghcr.io/xrplf/clio-ci:latest" }' 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 disable_cache: true analyze_build_time: name: Analyze Build Time strategy: fail-fast: false matrix: include: # TODO: Enable when we have at least ubuntu 22.04 # as ClangBuildAnalyzer requires relatively modern glibc # # - os: heavy # conan_profile: clang # container: '{ "image": "ghcr.io/xrplf/clio-ci:latest" }' # static: true - os: macos15 conan_profile: default_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 disable_cache: true code_coverage: false static: ${{ matrix.static }} upload_clio_server: false targets: all sanitizer: "false" analyze_build_time: true nightly_release: needs: build-and-test uses: ./.github/workflows/release_impl.yml with: overwrite_release: true title: "Clio development (nightly) build" version: nightly header: > # Release notes > **Note:** Please remember that this is a development release and it is not recommended for production use. Changelog (including previous releases): 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 }}/