name: Create release on: push: tags: - "*.*.*" pull_request: paths: - .github/workflows/release.yml 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: release-info: name: Determine release info runs-on: ubuntu-latest outputs: channel: ${{ steps.release_info.outputs.channel }} steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - id: release_info uses: XRPLF/actions/release-info@7cc0e4a8d9d0b838f92c48d312856b190341bbba build-and-test: name: Build and Test 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-cb2642b" }' uses: ./.github/workflows/reusable-build-test.yml with: runs_on: ${{ matrix.os }} container: ${{ matrix.container }} compiler: ${{ matrix.compiler }} build_type: ${{ matrix.build_type }} run_unit_tests: true run_integration_tests: true upload_clio_server: true download_ccache: false upload_ccache: false version: ${{ github.event_name == 'push' && github.ref_name || '' }} package: name: Build debian package uses: ./.github/workflows/reusable-build.yml with: runs_on: heavy container: '{ "image": "ghcr.io/xrplf/xrpld/nix-ubuntu:sha-cb2642b" }' compiler: gcc build_type: Release download_ccache: false upload_ccache: false code_coverage: false upload_clio_server: false package: true version: ${{ github.event_name == 'push' && github.ref_name || '' }} targets: package analyze_build_time: false publish_package: name: Publish debian package needs: [release-info, package] uses: ./.github/workflows/reusable-publish-package.yml with: channel: ${{ needs.release-info.outputs.channel }} secrets: nexus_username: ${{ secrets.NEXUS_REMOTE_USERNAME }} nexus_password: ${{ secrets.NEXUS_REMOTE_PASSWORD }} release: needs: [build-and-test, package] uses: ./.github/workflows/reusable-release.yml with: delete_pattern: "" prerelease: ${{ contains(github.ref_name, '-') }} title: "${{ github.ref_name }}" version: "${{ github.ref_name }}" header: > ${{ contains(github.ref_name, '-') && '> **Note:** Please remember that this is a release candidate and it is not recommended for production use.' || '' }} generate_changelog: ${{ !contains(github.ref_name, '-') }} draft: ${{ !contains(github.ref_name, '-') }}