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:c117f470f2ef954520ab5d1c8a5ed2b9e68d6f8a" }' - os: heavy conan_profile: gcc build_type: Debug static: true container: '{ "image": "ghcr.io/xrplf/clio-ci:c117f470f2ef954520ab5d1c8a5ed2b9e68d6f8a" }' - os: heavy conan_profile: gcc.ubsan build_type: Release static: false container: '{ "image": "ghcr.io/xrplf/clio-ci:c117f470f2ef954520ab5d1c8a5ed2b9e68d6f8a" }' 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:c117f470f2ef954520ab5d1c8a5ed2b9e68d6f8a" }' 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 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 nightly_release: needs: [build-and-test, get_date] uses: ./.github/workflows/reusable-release.yml with: delete_pattern: "nightly-*" prerelease: true title: "Clio development (nightly) build" 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): 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - 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 }}/