4.1.x beta release #36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "4.1.x beta release" | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| base_version: | |
| # A base version string in the A.B.C format | |
| type: string | |
| description: "Base version (e.g. 4.1.0) used at build time" | |
| required: true | |
| default: "4.1.0" | |
| prerelease: | |
| type: boolean | |
| description: Is this a pre-release? (a beta, an RC) | |
| required: true | |
| default: true | |
| prerelease_kind: | |
| type: string | |
| description: "Preview version (e.g. beta) used at build time" | |
| required: false | |
| default: "beta" | |
| prerelease_identifier: | |
| # can be a number, a commit SHA prefix | |
| type: string | |
| description: "Preview version (e.g. beta) used at build time" | |
| required: false | |
| default: "1" | |
| env: | |
| # Overriden conditionally with a step for prereleases, | |
| # set here for YAML schema validation | |
| FULL_VERSION: ${{ inputs.base_version }} | |
| FULL_RELEASE_VERSION: ${{ inputs.base_version }} | |
| FULL_PRERELEASE_VERSION: ${{ inputs.base_version }}-${{ inputs.prerelease_kind }}.${{ inputs.prerelease_identifier }} | |
| # makensis only accepts version numbers in the A.B.C.D format where every segment | |
| # is a positive integer. This means that for previews, the version can be {base}.{identifier} | |
| # or just {base} | |
| WINDOWS_INSTALLER_VERSION: ${{ inputs.base_version }}.${{ inputs.prerelease_identifier }} | |
| jobs: | |
| source_tarball: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rabbitmqdevenv/build-env-26.2 | |
| steps: | |
| # Actions do not support conditional expressions in the env: section, | |
| # so workaround sets FULL_VERSION | |
| - name: Conditionall sets FULL_VERSION for a prerelease | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_PRERELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'true' || inputs.prerelease == true }} | |
| - name: Conditionally sets FULL_VERSION for a final release | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_RELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'false' || inputs.prerelease == false }} | |
| - name: Clone rabbitmq/rabbitmq-server | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/rabbitmq-server | |
| ref: main | |
| path: rabbitmq-server | |
| - name: Clone rabbitmq/server-packages | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/server-packages | |
| ref: main | |
| path: server-packages | |
| - name: Generate source tarball | |
| run: | | |
| cd rabbitmq-server | |
| gmake source-dist PROJECT_VERSION=${{ env.FULL_VERSION }} | |
| - name: Store source tarball | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-source-tarball | |
| path: "rabbitmq-server/PACKAGES/*" | |
| retention-days: 2 | |
| generic_binary_package: | |
| needs: source_tarball | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rabbitmqdevenv/build-env-26.2 | |
| steps: | |
| # Actions do not support conditional expressions in the env: section, | |
| # so workaround sets FULL_VERSION | |
| - name: Conditionall sets FULL_VERSION for a prerelease | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_PRERELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'true' || inputs.prerelease == true }} | |
| - name: Conditionally sets FULL_VERSION for a final release | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_RELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'false' || inputs.prerelease == false }} | |
| - name: Clone rabbitmq/rabbitmq-server | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/rabbitmq-server | |
| ref: main | |
| path: rabbitmq-server | |
| - name: Fetch source tarball | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-source-tarball | |
| path: ./rabbitmq-server/PACKAGES | |
| - name: Build generic binary package | |
| run: | | |
| cd rabbitmq-server | |
| ls -lha ./PACKAGES | |
| gmake package-generic-unix TARBALL_SUFFIX=generic-unix \ | |
| SOURCE_DIST_FILE=./PACKAGES/rabbitmq-server-${{ env.FULL_VERSION }}.tar.xz \ | |
| PROJECT_VERSION=${{ env.FULL_VERSION }} | |
| ls -lha ./PACKAGES | |
| - name: Store generic binary build | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-generic-unix | |
| path: "rabbitmq-server/PACKAGES/rabbitmq-server-generic-unix-${{ env.FULL_VERSION }}.tar.xz" | |
| retention-days: 2 | |
| debian_package: | |
| needs: source_tarball | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rabbitmqdevenv/build-env-26.2 | |
| steps: | |
| # Actions do not support conditional expressions in the env: section, | |
| # so workaround sets FULL_VERSION | |
| - name: Conditionall sets FULL_VERSION for a prerelease | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_PRERELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'true' || inputs.prerelease == true }} | |
| - name: Conditionally sets FULL_VERSION for a final release | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_RELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'false' || inputs.prerelease == false }} | |
| - name: Clone rabbitmq/rabbitmq-server | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/rabbitmq-server | |
| ref: main | |
| path: rabbitmq-server | |
| - name: Clone rabbitmq/rabbitmq-server | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/rabbitmq-packaging | |
| ref: main | |
| path: rabbitmq-packaging | |
| - name: Fetch source tarball | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-source-tarball | |
| path: ./rabbitmq-server/PACKAGES | |
| - name: Build Debian package | |
| run: | | |
| cd rabbitmq-packaging | |
| gmake package-deb PROJECT_VERSION=${{ env.FULL_VERSION }} \ | |
| SOURCE_DIST_FILE=../rabbitmq-server/PACKAGES/rabbitmq-server-${{ env.FULL_VERSION }}.tar.xz \ | |
| RABBITMQ_PACKAGING_REPO=. \ | |
| DEBIAN_VERSION="${{ env.FULL_VERSION }}" \ | |
| SAVE_CHANGELOG=yes \ | |
| INSTALL_BUILD_DEPS=no | |
| cd .. | |
| ls -lha PACKAGES/ | |
| - name: Store Debian package and build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-debian-package | |
| path: "PACKAGES/*" | |
| retention-days: 2 | |
| rpm_package: | |
| needs: source_tarball | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rabbitmqdevenv/build-env-26.2 | |
| steps: | |
| # Actions do not support conditional expressions in the env: section, | |
| # so workaround sets FULL_VERSION | |
| - name: Conditionall sets FULL_VERSION for a prerelease | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_PRERELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'true' || inputs.prerelease == true }} | |
| - name: Conditionally sets FULL_VERSION for a final release | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_RELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'false' || inputs.prerelease == false }} | |
| - name: Clone rabbitmq/rabbitmq-server | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/rabbitmq-server | |
| ref: main | |
| path: rabbitmq-server | |
| - name: Clone rabbitmq/rabbitmq-server | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/rabbitmq-packaging | |
| ref: main | |
| path: rabbitmq-packaging | |
| - name: Fetch source tarball | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-source-tarball | |
| path: ./rabbitmq-server/PACKAGES | |
| - name: Build RPM package | |
| run: | | |
| cd rabbitmq-packaging | |
| gmake package-rpm-rhel8 RABBITMQ_VERSION=${{ env.FULL_VERSION }} \ | |
| PROJECT_VERSION=${{ env.FULL_VERSION }} \ | |
| RABBITMQ_PACKAGING_REPO=. \ | |
| RPM_VERSION="${{ github.event.inputs.base_version }}~${{ github.event.inputs.prerelease_kind }}.1" \ | |
| SOURCE_DIST_FILE=../rabbitmq-server/PACKAGES/rabbitmq-server-${{ env.FULL_VERSION }}.tar.xz | |
| cd .. | |
| ls -lha PACKAGES/ | |
| - name: Store RPM package and build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-rpm-package | |
| path: "PACKAGES/*" | |
| retention-days: 2 | |
| windows_packages: | |
| needs: source_tarball | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rabbitmqdevenv/build-env-26.2 | |
| steps: | |
| # Actions do not support conditional expressions in the env: section, | |
| # so workaround sets FULL_VERSION | |
| - name: Conditionall sets FULL_VERSION for a prerelease | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_PRERELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'true' || inputs.prerelease == true }} | |
| - name: Conditionally sets FULL_VERSION for a final release | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_RELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'false' || inputs.prerelease == false }} | |
| - name: Clone rabbitmq/rabbitmq-server | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/rabbitmq-server | |
| ref: main | |
| path: rabbitmq-server | |
| - name: Clone rabbitmq/rabbitmq-server | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: rabbitmq/rabbitmq-packaging | |
| ref: main | |
| path: rabbitmq-packaging | |
| - name: Fetch source tarball | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-source-tarball | |
| path: ./rabbitmq-server/PACKAGES | |
| - name: Build Windows binary package and NSIS-based installer | |
| run: | | |
| cd rabbitmq-packaging | |
| # IMPORTANT: PRODUCT_VERSION must use the A.B.C.D format where every component is a positive integer. | |
| # This is an MSI and makensis build tooling requirement. | |
| gmake package-windows RABBITMQ_PACKAGING_REPO="." \ | |
| SOURCE_DIST_FILE=../rabbitmq-server/PACKAGES/rabbitmq-server-${{ env.FULL_VERSION }}.tar.xz \ | |
| VERSION=${{ env.FULL_VERSION }} \ | |
| PRODUCT_VERSION=${{ env.WINDOWS_INSTALLER_VERSION }} | |
| cd .. | |
| ls -lha PACKAGES/ | |
| - name: Store Windows binary package and installer | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| # singular for consistency, even though it contains two packages | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-windows-package | |
| path: "PACKAGES/*" | |
| retention-days: 2 | |
| create_gh_release: | |
| needs: [source_tarball, generic_binary_package, debian_package, rpm_package, windows_packages] | |
| runs-on: ubuntu-latest | |
| steps: | |
| # Actions do not support conditional expressions in the env: section, | |
| # so workaround sets FULL_VERSION | |
| - name: Conditionall sets FULL_VERSION for a prerelease | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_PRERELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'true' || inputs.prerelease == true }} | |
| - name: Conditionally sets FULL_VERSION for a final release | |
| run: | | |
| echo "Pre-release? ${{ inputs.prerelease }}" | |
| echo "FULL_VERSION=${{ env.FULL_RELEASE_VERSION }}" >> $GITHUB_ENV | |
| if: ${{ inputs.prerelease == 'false' || inputs.prerelease == false }} | |
| - name: Fetch source tarball | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-source-tarball | |
| path: ./artifacts | |
| - name: Fetch generic binary package | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-generic-unix | |
| path: ./artifacts | |
| - name: Fetch Debian package and build artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-debian-package | |
| path: ./artifacts | |
| - name: Fetch RPM package | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-rpm-package | |
| path: ./artifacts | |
| - name: Fetch Windows packages | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: rabbitmq-server-${{ env.FULL_VERSION }}-windows-package | |
| path: ./artifacts | |
| - name: List collected artifacts | |
| run: ls -lha ./artifacts | |
| - name: Create a GitHub release | |
| id: create_gh_release | |
| uses: "marvinpinto/action-automatic-releases@latest" | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| automatic_release_tag: v${{ env.FULL_VERSION }} | |
| title: RabbitMQ ${{ env.FULL_VERSION }} | |
| draft: false | |
| prerelease: ${{ inputs.prerelease == true || inputs.prerelease == 'true' }} | |
| files: ./artifacts/* | |