Build Release #6
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 | |
| 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" | |
| jobs: | |
| set-version: | |
| runs-on: ubuntu-latest | |
| 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 }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set version variables | |
| id: set-vars | |
| run: | | |
| DATE=$(date +%Y%m%d) | |
| BUILD=${{ inputs.build_number }} | |
| VERSION=3.8.0 | |
| # Set version variables for nightly packages according to the platform conventions: | |
| # - Semver : 3.8.0-nightly.<YYYYMMDD>.<BUILD> | |
| echo "semver_version=${VERSION}-nightly.${DATE}.${BUILD}" >> $GITHUB_OUTPUT | |
| # - DEB: 3.8.0-0.nightly<YYYYMMDD>.<BUILD> | |
| echo "deb_version=${VERSION}-0.nightly${DATE}.${BUILD}" >> $GITHUB_OUTPUT | |
| # - GEM: 3.8.0.pre.<YYYYMMDD>.<BUILD> | |
| echo "gem_version=${VERSION}.pre.${DATE}.${BUILD}" >> $GITHUB_OUTPUT | |
| # - MAVEN: 3.8.0-nightly-<YYYYMMDD>.<BUILD>-SNAPSHOT | |
| echo "maven_version=${VERSION}-nightly-${DATE}.${BUILD}-SNAPSHOT" >> $GITHUB_OUTPUT | |
| # - PyPI: 3.8.0.dev<YYYYMMDD><BUILD> | |
| echo "pypi_version=${VERSION}.dev${DATE}${BUILD}" >> $GITHUB_OUTPUT | |
| # - RPM: 3.8.0~0.nightly<YYYYMMDD>.<BUILD> | |
| echo "rpm_version=${VERSION}~0.nightly${DATE}.${BUILD}" >> $GITHUB_OUTPUT | |
| build-brew-packages: | |
| name: Build Brew Packages | |
| uses: ./.github/workflows/build-brew-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.semver_version }} | |
| channel: ${{ inputs.channel }} | |
| # Stable brew release must be built manually. | |
| if: ${{ inputs.channel == 'nightly' }} | |
| secrets: inherit | |
| build-cpp-windows-packages: | |
| name: Build C++ NuGet Package | |
| uses: ./.github/workflows/build-cpp-windows-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.semver_version }} | |
| secrets: inherit | |
| build-deb-packages: | |
| name: Build DEB Packages | |
| uses: ./.github/workflows/build-deb-packages.yml | |
| needs: set-version | |
| secrets: inherit | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.deb_version }} | |
| 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-matlab-packages: | |
| name: Build MATLAB Packages | |
| uses: ./.github/workflows/build-matlab-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.semver_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-xcframework-packages: | |
| name: Build XCFramework Packages | |
| uses: ./.github/workflows/build-xcframework-packages.yml | |
| needs: set-version | |
| with: | |
| ice_version: ${{ needs.set-version.outputs.semver_version }} | |
| secrets: inherit | |
| publish-release: | |
| needs: | |
| - build-brew-packages | |
| - build-cpp-windows-packages | |
| - build-deb-packages | |
| - build-dotnet-packages | |
| - build-gem-packages | |
| - build-matlab-packages | |
| - build-maven-packages | |
| - build-npm-packages | |
| - build-pip-packages | |
| - build-rpm-packages | |
| - build-xcframework-packages | |
| uses: ./.github/workflows/publish-release.yml | |
| with: | |
| channel: ${ inputs.channel } | |
| run_id: ${{ github.run_id }} | |
| secrets: inherit |