Build Release #20
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: Build Release | |
| on: | |
| workflow_call: | |
| inputs: | |
| build_number: | |
| required: false | |
| default: "1" | |
| type: string | |
| channel: | |
| required: true | |
| type: string | |
| publish: | |
| required: false | |
| type: boolean | |
| default: false | |
| workflow_dispatch: | |
| inputs: | |
| build_number: | |
| description: "Build number for nightly releases" | |
| required: false | |
| default: "1" | |
| channel: | |
| description: "Release channel (e.g., 3.8, nightly)" | |
| required: true | |
| default: "nightly" | |
| publish: | |
| description: "Whether to publish the packages" | |
| required: false | |
| default: false | |
| type: boolean | |
| jobs: | |
| set-version: | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| semver_version: ${{ steps.set-vars.outputs.semver_version }} | |
| deb_version: ${{ steps.set-vars.outputs.deb_version }} | |
| gem_version: ${{ steps.set-vars.outputs.gem_version }} | |
| maven_version: ${{ steps.set-vars.outputs.maven_version }} | |
| pypi_version: ${{ steps.set-vars.outputs.pypi_version }} | |
| rpm_version: ${{ steps.set-vars.outputs.rpm_version }} | |
| matlab_version: ${{ steps.set-vars.outputs.matlab_version }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set version variables | |
| id: set-vars | |
| run: | | |
| if [[ "${{ inputs.channel }}" == "nightly" ]]; then | |
| DATE=$(date +%Y%m%d) | |
| BUILD=${{ inputs.build_number }} | |
| VERSION=3.8.0 | |
| # Set version variables for nightly packages according to platform conventions: | |
| # e.g. 3.8.0-nightly.20250625.1 | |
| echo "semver_version=${VERSION}-nightly.${DATE}.${BUILD}" >> $GITHUB_OUTPUT | |
| # e.g. 3.8.0~0.nightly20250625.1-1 | |
| echo "deb_version=${VERSION}~0.nightly${DATE}.${BUILD}-1" >> $GITHUB_OUTPUT | |
| # e.g. 3.8.0.pre.20250625.1 | |
| echo "gem_version=${VERSION}.pre.${DATE}.${BUILD}" >> $GITHUB_OUTPUT | |
| # e.g. 3.8.0-nightly-20250625.1-SNAPSHOT | |
| echo "maven_version=${VERSION}-nightly-${DATE}.${BUILD}-SNAPSHOT" >> $GITHUB_OUTPUT | |
| # e.g. 3.8.0.dev202506251 | |
| echo "pypi_version=${VERSION}.dev${DATE}${BUILD}" >> $GITHUB_OUTPUT | |
| # e.g. 3.8.0~0.nightly20250625.1 | |
| echo "rpm_version=${VERSION}~0.nightly${DATE}.${BUILD}" >> $GITHUB_OUTPUT | |
| # e.g. 3.8.0.202506251 | |
| echo "matlab_version=${VERSION}.${DATE}${BUILD}" >> $GITHUB_OUTPUT | |
| else | |
| # Define version variables as empty for stable channels to use the version from the repository | |
| echo "semver_version=" >> $GITHUB_OUTPUT | |
| echo "deb_version=" >> $GITHUB_OUTPUT | |
| echo "gem_version=" >> $GITHUB_OUTPUT | |
| echo "maven_version=" >> $GITHUB_OUTPUT | |
| echo "pypi_version=" >> $GITHUB_OUTPUT | |
| echo "rpm_version=" >> $GITHUB_OUTPUT | |
| echo "matlab_version=" >> $GITHUB_OUTPUT | |
| fi | |
| build-deb-packages: | |
| name: Build DEB Packages | |
| uses: ./.github/workflows/build-deb-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.deb_version }} | |
| secrets: inherit | |
| build-dotnet-packages: | |
| name: Build .NET Packages | |
| uses: ./.github/workflows/build-dotnet-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.semver_version }} | |
| secrets: inherit | |
| build-gem-packages: | |
| name: Build GEM Packages | |
| uses: ./.github/workflows/build-gem-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.gem_version }} | |
| build-macos-packages: | |
| name: Build macOS Packages | |
| uses: ./.github/workflows/build-macos-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.semver_version }} | |
| channel: ${{ inputs.channel }} | |
| secrets: inherit | |
| build-matlab-packages: | |
| name: Build MATLAB Packages | |
| uses: ./.github/workflows/build-matlab-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.matlab_version }} | |
| secrets: inherit | |
| build-maven-packages: | |
| name: Build Maven Packages | |
| uses: ./.github/workflows/build-maven-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.maven_version }} | |
| secrets: inherit | |
| build-npm-packages: | |
| name: Build NPM Packages | |
| uses: ./.github/workflows/build-npm-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.semver_version }} | |
| secrets: inherit | |
| build-pip-packages: | |
| name: Build PIP Packages | |
| uses: ./.github/workflows/build-pip-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.pypi_version }} | |
| secrets: inherit | |
| build-rpm-packages: | |
| name: Build RPM Packages | |
| uses: ./.github/workflows/build-rpm-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.rpm_version }} | |
| secrets: inherit | |
| build-windows-packages: | |
| name: Build C++ NuGet Package | |
| uses: ./.github/workflows/build-windows-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.semver_version }} | |
| secrets: inherit | |
| publish-release: | |
| name: Publish Release | |
| if: ${{ inputs.publish == true }} | |
| needs: | |
| - build-deb-packages | |
| - build-dotnet-packages | |
| - build-gem-packages | |
| - build-macos-packages | |
| - build-matlab-packages | |
| - build-maven-packages | |
| - build-npm-packages | |
| - build-pip-packages | |
| - build-rpm-packages | |
| - build-windows-packages | |
| uses: ./.github/workflows/publish-release.yml | |
| with: | |
| channel: ${{ inputs.channel }} | |
| run_id: ${{ github.run_id }} | |
| secrets: inherit |