Build: All - nightly #1240
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: All" | |
| run-name: "Build: All - ${{ inputs.build_mode }}" | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| platforms: | |
| description: 'Platforms to build:' | |
| default: 'backend linux_arm64 linux_x64 macos windows_x64 windows_portable' | |
| required: true | |
| build_mode: | |
| description: 'Build mode: devel,nightly,testing,stable' | |
| default: 'devel' | |
| required: true | |
| publish: | |
| description: 'Publish to FTP: on - publish' | |
| default: 'off' | |
| required: false | |
| deploy_backend: | |
| description: 'Deploy backend: on - deploy' | |
| default: 'off' | |
| required: false | |
| sentry_project: | |
| description: 'Upload symbols and dumps to Sentry (choose a project): mu4(default for stable build), mu4-sandbox' | |
| default: '' | |
| required: false | |
| dockwidgets_v2: | |
| description: 'Use KDDockWidgets v2: ON/OFF' | |
| default: 'ON' | |
| required: false | |
| workflow_call: | |
| inputs: | |
| platforms: | |
| description: 'Platforms to build:' | |
| default: 'backend linux_arm64 linux_x64 macos windows_x64 windows_portable' | |
| type: string | |
| required: true | |
| build_mode: | |
| description: 'Build mode: devel,nightly,testing,stable' | |
| default: 'devel' | |
| type: string | |
| required: true | |
| publish: | |
| description: 'Publish to FTP: on - publish' | |
| default: 'off' | |
| type: string | |
| required: false | |
| deploy_backend: | |
| description: 'Deploy backend: on - deploy' | |
| default: 'off' | |
| type: string | |
| required: false | |
| sentry_project: | |
| description: 'Upload symbols and dumps to Sentry (choose a project): mu4(default for stable build), mu4-sandbox' | |
| default: '' | |
| type: string | |
| required: false | |
| dockwidgets_v2: | |
| description: 'Use KDDockWidgets v2: ON/OFF' | |
| default: 'ON' | |
| type: string | |
| required: false | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| generate_build_number: | |
| name: Generate Build Number | |
| runs-on: ubuntu-slim | |
| outputs: | |
| build_number: ${{ steps.make_build_number.outputs.build_number }} | |
| steps: | |
| - name: Clone repository | |
| uses: actions/checkout@v7 | |
| with: | |
| submodules: recursive | |
| - name: Generate build number | |
| id: make_build_number | |
| run: | | |
| bash ./buildscripts/ci/tools/make_build_number.sh | |
| BUILD_NUMBER=$(cat ./build.artifacts/env/build_number.env) | |
| echo "build_number=${BUILD_NUMBER}" >> $GITHUB_OUTPUT | |
| echo "Generated BUILD_NUMBER: ${BUILD_NUMBER}" | |
| backend: | |
| name: Backend | |
| needs: generate_build_number | |
| if: ${{ contains(inputs.platforms, 'backend') }} | |
| uses: $/.github/workflows/build_backend.yml | |
| secrets: inherit | |
| with: | |
| build_mode: ${{ inputs.build_mode }} | |
| publish: ${{ inputs.publish }} | |
| deploy: ${{ inputs.deploy_backend }} | |
| build_number: ${{ needs.generate_build_number.outputs.build_number }} | |
| linux: | |
| name: Linux | |
| needs: generate_build_number | |
| uses: $/.github/workflows/build_linux.yml | |
| secrets: inherit | |
| with: | |
| platforms: ${{ inputs.platforms }} | |
| build_mode: ${{ inputs.build_mode }} | |
| publish: ${{ inputs.publish }} | |
| sentry_project: ${{ inputs.sentry_project }} | |
| build_number: ${{ needs.generate_build_number.outputs.build_number }} | |
| dockwidgets_v2: ${{ inputs.dockwidgets_v2 }} | |
| macos: | |
| name: macOS | |
| needs: generate_build_number | |
| if: ${{ contains(inputs.platforms, 'macos') }} | |
| uses: $/.github/workflows/build_macos.yml | |
| secrets: inherit | |
| with: | |
| build_mode: ${{ inputs.build_mode }} | |
| publish: ${{ inputs.publish }} | |
| sentry_project: ${{ inputs.sentry_project }} | |
| build_number: ${{ needs.generate_build_number.outputs.build_number }} | |
| dockwidgets_v2: ${{ inputs.dockwidgets_v2 }} | |
| windows: | |
| name: Windows | |
| needs: generate_build_number | |
| uses: $/.github/workflows/build_windows.yml | |
| secrets: inherit | |
| with: | |
| platforms: ${{ inputs.platforms }} | |
| build_mode: ${{ inputs.build_mode }} | |
| publish: ${{ inputs.publish }} | |
| sentry_project: ${{ inputs.sentry_project }} | |
| build_number: ${{ needs.generate_build_number.outputs.build_number }} | |
| dockwidgets_v2: ${{ inputs.dockwidgets_v2 }} | |
| # Dummy build for testing purposes. | |
| dummy: | |
| if: ${{ contains(inputs.platforms, 'dummy') }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Expose edge cases like different command versions, CRLF line endings, etc. | |
| # Use same OS versions as used in real build workflows. | |
| os: | |
| - ubuntu-22.04 # linux_x64, backend, linux_arm64 | |
| - macos-latest | |
| - windows-2025 # windows_x64, windows_portable | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Clone repository | |
| uses: actions/checkout@v7 | |
| with: | |
| submodules: recursive | |
| - name: Prepare dummy artifact | |
| run: | | |
| ARTIFACTS_DIR="build.artifacts" | |
| echo "ARTIFACTS_DIR=${ARTIFACTS_DIR}" | tee -a "${GITHUB_ENV}" | |
| buildscripts/ci/tools/make_build_mode_env.sh -e "${{ github.event_name }}" -m "${{ inputs.build_mode }}" | |
| BUILD_MODE="$(<"${ARTIFACTS_DIR}/env/build_mode.env")" | |
| case "${BUILD_MODE}" in | |
| testing) MUSE_APP_BUILD_MODE=testing;; | |
| stable) MUSE_APP_BUILD_MODE=release;; | |
| *) MUSE_APP_BUILD_MODE=dev;; | |
| esac | |
| buildscripts/ci/tools/make_build_number.sh | |
| BUILD_NUMBER="$(<"${ARTIFACTS_DIR}/env/build_number.env")" | |
| buildscripts/ci/tools/make_version_env.sh "${BUILD_NUMBER}" | |
| BUILD_VERSION="$(<"${ARTIFACTS_DIR}/env/build_version.env")" | |
| buildscripts/ci/tools/make_branch_env.sh | |
| BUILD_BRANCH="$(<"${ARTIFACTS_DIR}/env/build_branch.env")" | |
| buildscripts/ci/tools/make_release_channel_env.sh -c "${MUSE_APP_BUILD_MODE}" | |
| buildscripts/ci/tools/make_revision_env.sh "$(git rev-parse --short=7 HEAD)" | |
| buildscripts/ci/tools/make_artifact_name_env.sh "MuseScore-Dummy-${BUILD_VERSION}-${{ matrix.os }}-${HOSTTYPE}.txt" | |
| ARTIFACT_NAME="$(<"${ARTIFACTS_DIR}/env/artifact_name.env")" | |
| echo "Hello, world!" >"${ARTIFACTS_DIR}/${ARTIFACT_NAME}" | |
| buildscripts/ci/tools/checksum.sh | |
| UPLOAD_ARTIFACT_NAME="$(tr '":<>|*?/\\’' '_' <<<"MU4_${BUILD_NUMBER}_Dummy-${{ matrix.os }}_${BUILD_BRANCH}")" | |
| echo "UPLOAD_ARTIFACT_NAME=${UPLOAD_ARTIFACT_NAME}" | tee -a "${GITHUB_ENV}" | |
| - name: Upload artifacts to GitHub | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ env.UPLOAD_ARTIFACT_NAME }} | |
| path: ${{ env.ARTIFACTS_DIR }} |