Update Qt to 6.11.1 #14810
Workflow file for this run
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: Windows' | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| inputs: | |
| platforms: | |
| description: 'Platforms to build:' | |
| default: '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 | |
| 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: 'OFF' | |
| required: false | |
| workflow_call: | |
| inputs: | |
| platforms: | |
| description: 'Platforms to build:' | |
| default: '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 | |
| sentry_project: | |
| description: 'Upload symbols and dumps to Sentry (choose a project): mu4(default for stable build), mu4-sandbox' | |
| default: '' | |
| type: string | |
| required: false | |
| build_number: | |
| description: "Build number (if not provided, will be generated)" | |
| default: "" | |
| type: string | |
| required: false | |
| dockwidgets_v2: | |
| description: 'Use KDDockWidgets v2: ON/OFF' | |
| default: 'OFF' | |
| type: string | |
| required: false | |
| app_repo: | |
| description: 'owner/repo to source MuseScore from (default: this repo)' | |
| type: string | |
| required: false | |
| default: '' | |
| app_ref: | |
| description: 'MuseScore ref to check out (default: ref of triggering event)' | |
| type: string | |
| required: false | |
| default: '' | |
| framework_repo: | |
| description: 'owner/repo to source muse_framework from (default: pinned submodule)' | |
| type: string | |
| required: false | |
| default: '' | |
| framework_ref: | |
| description: 'Ref to check out into the muse_framework submodule (default: pinned SHA)' | |
| type: string | |
| required: false | |
| default: '' | |
| concurrency: | |
| # If run via workflow_call, ${{ github.workflow }} is the root workflow's name (e.g. 'Deploy'), | |
| # which is the same for all workflows called in that run, hence we must add a unique suffix here. | |
| group: ${{ github.workflow }} ${{ github.event_name }} ${{ github.ref }} windows | |
| cancel-in-progress: true | |
| jobs: | |
| windows_x64: | |
| if: inputs.platforms == '' || contains(inputs.platforms, 'windows_x64') | |
| runs-on: windows-2025 | |
| steps: | |
| - name: Clone repository | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: ${{ inputs.app_repo || github.repository }} | |
| ref: ${{ inputs.app_ref || github.ref }} | |
| submodules: recursive | |
| - name: Override muse_framework | |
| if: inputs.framework_ref != '' && inputs.framework_repo != '' | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: ${{ inputs.framework_repo }} | |
| ref: ${{ inputs.framework_ref }} | |
| path: muse | |
| submodules: recursive | |
| - name: Configure workflow | |
| shell: bash | |
| env: | |
| pull_request_title: ${{ github.event.pull_request.title }} | |
| SENTRY_MUSE_MU4_KEY: ${{ secrets.SENTRY_MUSE_MU4_KEY }} | |
| SENTRY_MUSE_MU4_SANDBOX_KEY: ${{ secrets.SENTRY_MUSE_MU4_SANDBOX_KEY }} | |
| SENTRY_PROJECT: ${{ inputs.sentry_project }} | |
| run: | | |
| bash ./buildscripts/ci/tools/make_build_mode_env.sh -e ${{ github.event_name }} -m ${{ inputs.build_mode }} | |
| BUILD_MODE=$(cat ./build.artifacts/env/build_mode.env) | |
| if [ -n "${{ inputs.build_number }}" ]; then | |
| BUILD_NUMBER="${{ inputs.build_number }}" | |
| bash ./buildscripts/ci/tools/make_build_number.sh "$BUILD_NUMBER" | |
| else | |
| bash ./buildscripts/ci/tools/make_build_number.sh | |
| fi | |
| BUILD_NUMBER=$(cat ./build.artifacts/env/build_number.env) | |
| DO_UPDATE_TS='false' | |
| if [[ "$BUILD_MODE" == "testing" || "$BUILD_MODE" == "stable" ]]; then | |
| DO_UPDATE_TS='true' | |
| if [ -z "${{ secrets.TRANSIFEX_API_TOKEN }}" ]; then | |
| echo "::warning::TRANSIFEX_API_TOKEN is empty; updating .ts files disabled" | |
| DO_UPDATE_TS='false' | |
| fi | |
| fi | |
| DO_PLACEHOLDER_TRANSLATIONS='false' | |
| if [[ "$BUILD_MODE" == "nightly" || "$BUILD_MODE" == "devel" ]]; then | |
| DO_PLACEHOLDER_TRANSLATIONS='true' | |
| fi | |
| DO_UPLOAD_SYMBOLS='false' | |
| SENTRY_URL="" | |
| if [ "$SENTRY_MUSE_MU4_KEY" != "" ]; then | |
| if [ -z "$SENTRY_PROJECT" ] && [ "$BUILD_MODE" == "stable" ]; then | |
| SENTRY_PROJECT="mu4" | |
| fi | |
| if [ "$SENTRY_PROJECT" == "mu4" ]; then | |
| DO_UPLOAD_SYMBOLS='true' | |
| SENTRY_URL=https://sentry.musescore.com/api/4/minidump/?sentry_key=$SENTRY_MUSE_MU4_KEY | |
| fi | |
| fi | |
| if [ -z "$SENTRY_PROJECT" ] && [ "$BUILD_MODE" == "nightly" ]; then | |
| SENTRY_PROJECT="mu4-sandbox" | |
| fi | |
| if [ "$SENTRY_PROJECT" == "mu4-sandbox" ] && [ "$SENTRY_MUSE_MU4_SANDBOX_KEY" != "" ]; then | |
| DO_UPLOAD_SYMBOLS='true' | |
| SENTRY_URL=https://sentry.musescore.com/api/3/minidump/?sentry_key=$SENTRY_MUSE_MU4_SANDBOX_KEY | |
| fi | |
| DO_PUBLISH='false' | |
| if [ "${{ inputs.publish }}" == "on" ]; then | |
| DO_PUBLISH='true' | |
| if [ -z "${{ secrets.OSUOSL_SSH_ENCRYPT_SECRET }}" ]; then | |
| echo "::warning::OSUOSL_SSH_ENCRYPT_SECRET is empty; not publishing to OSUOSL" | |
| DO_PUBLISH='false' | |
| fi | |
| fi | |
| ADD_INFO="_${GITHUB_REF#refs/heads/}" | |
| if [ "${{ github.event_name }}" == "pull_request" ]; then | |
| ADD_INFO="_${{ github.event.pull_request.number }}_${pull_request_title}" | |
| fi | |
| UPLOAD_ARTIFACT_NAME="$(tr '":<>|*?/\\’' '_' <<<"MU4_${BUILD_NUMBER}_Win${ADD_INFO}")" | |
| echo "github.repository: ${{ github.repository }}" | |
| echo "BUILD_MODE=$BUILD_MODE" | tee -a $GITHUB_ENV | |
| echo "BUILD_NUMBER=$BUILD_NUMBER" | tee -a $GITHUB_ENV | |
| echo "DO_UPDATE_TS=$DO_UPDATE_TS" | tee -a $GITHUB_ENV | |
| echo "DO_PLACEHOLDER_TRANSLATIONS=$DO_PLACEHOLDER_TRANSLATIONS" | tee -a $GITHUB_ENV | |
| echo "DO_UPLOAD_SYMBOLS=$DO_UPLOAD_SYMBOLS" | tee -a $GITHUB_ENV | |
| echo "SENTRY_PROJECT=$SENTRY_PROJECT" | tee -a $GITHUB_ENV | |
| echo "SENTRY_URL=$SENTRY_URL" | tee -a $GITHUB_ENV | |
| echo "DO_PUBLISH=$DO_PUBLISH" | tee -a $GITHUB_ENV | |
| echo "UPLOAD_ARTIFACT_NAME=$UPLOAD_ARTIFACT_NAME" | tee -a $GITHUB_ENV | |
| # - parallel: | |
| # - name: Restore ccache files | |
| # id: restore-ccache | |
| # uses: actions/cache/restore@v6 | |
| # with: | |
| # path: ${{ github.workspace }}/.ccache | |
| # key: ${{runner.os}}-${{runner.arch}}-ccache- | |
| # restore-keys: ${{runner.os}}-${{runner.arch}}-ccache- | |
| # - name: Setup ccache | |
| # run: | | |
| # choco install -y ccache | |
| # bash ./buildscripts/ci/tools/setup_ccache_config.sh | |
| - parallel: | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: 6.11.1 | |
| host: 'windows' | |
| target: 'desktop' | |
| arch: 'win64_msvc2022_64' | |
| modules: 'qt5compat qtcanvaspainter qtnetworkauth qtshadertools qttasktree qtwebsockets' | |
| cache: true | |
| # https://github.com/miurahr/aqtinstall/pull/1000#issuecomment-4109913885 | |
| aqtsource: 'git+https://github.com/miurahr/aqtinstall.git' | |
| - name: Setup environment | |
| run: | | |
| buildscripts\ci\windows\setup.bat | |
| - name: Generate _en.ts files | |
| shell: bash | |
| env: | |
| LUPDATE_ARGS: "" | |
| POSTPROCESS_ARGS: "--warn-only ${{ env.DO_PLACEHOLDER_TRANSLATIONS == 'true' && '--generate-placeholder-translations' || '' }}" | |
| POSTPROCESS_LAUNCHER: "python3 -X utf8" | |
| run: | | |
| bash ./tools/translations/run_lupdate.sh | |
| - name: Update .ts files (tx pull) | |
| if: env.DO_UPDATE_TS == 'true' | |
| uses: cbjeukendrup/cli-action@windows | |
| with: | |
| token: ${{ secrets.TRANSIFEX_API_TOKEN }} | |
| args: "pull -f" | |
| - name: Register msvc problem matcher | |
| run: echo "::add-matcher::.github/problem_matchers/msvc.json" | |
| - name: Build | |
| shell: cmd | |
| run: | | |
| IF ${{ env.SENTRY_URL != 0 }} == true ( SET C_URL="${{ env.SENTRY_URL }}" ) ELSE ( SET C_URL="" ) | |
| buildscripts\ci\windows\build.bat -n ${{ env.BUILD_NUMBER }} --crash_log_url %C_URL% --dockwidgets_v2 ${{ inputs.dockwidgets_v2 == 'ON' && 'ON' || 'OFF' }} | |
| - name: Show ccache stats | |
| run: | | |
| ccache -sv | |
| - name: Package | |
| shell: cmd | |
| run: | | |
| IF ${{ secrets.WIN_SIGN_S3_SECRET != 0 }} == true ( SET S_S=${{ secrets.WIN_SIGN_S3_SECRET }} ) ELSE ( SET S_S="''" ) | |
| IF ${{ secrets.WIN_SIGN_S3_KEY != 0 }} == true ( SET S_K=${{ secrets.WIN_SIGN_S3_KEY }} ) ELSE ( SET S_K="''" ) | |
| IF ${{ env.BUILD_MODE }} == stable ( SET GUID=${{ secrets.WIN_MSI_STABLE_MU4_GUID }} ) ELSE ( SET GUID=${{ secrets.WIN_MSI_TESTING_MU4_GUID }} ) | |
| buildscripts\ci\windows\package.bat --signsecret %S_S% --signkey %S_K% --guid %GUID% | |
| - name: Checksum | |
| run: | | |
| bash ./buildscripts/ci/tools/checksum.sh | |
| - name: Generate and upload dump symbols | |
| if: env.DO_UPLOAD_SYMBOLS == 'true' | |
| shell: bash | |
| run: | | |
| APP_BIN=$(pwd)/build.release/MuseScore5.pdb | |
| cmake -DAPP_BIN=${APP_BIN} \ | |
| -DSENTRY_URL=https://sentry.musescore.com \ | |
| -DSENTRY_ORG=sentry \ | |
| -DSENTRY_AUTH_TOKEN=${{ secrets.SENTRY_MUSE_AUTH_TOKEN }} \ | |
| -DSENTRY_PROJECT=${SENTRY_PROJECT} \ | |
| -DSTAGE=${BUILD_MODE} \ | |
| -P buildscripts/ci/crashdumps/ci_generate_and_upload.cmake | |
| - name: Publish to OSUOSL | |
| if: env.DO_PUBLISH == 'true' | |
| shell: bash | |
| run: | | |
| bash ./buildscripts/ci/tools/osuosl/publish.sh -s ${{ secrets.OSUOSL_SSH_ENCRYPT_SECRET }} --os windows -v 4 | |
| - name: Upload artifacts on GitHub | |
| if: ${{ always() }} | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ env.UPLOAD_ARTIFACT_NAME }} | |
| path: build.artifacts\ | |
| - name: Prepare ccache files for saving | |
| id: prepare-save-ccache | |
| if: always() | |
| shell: bash | |
| run: | | |
| ccache --recompress 10 | |
| echo "CCACHE_TIMESTAMP=$(date -u +"%F-%T")" | tee -a $GITHUB_OUTPUT | |
| - name: Save ccache files | |
| if: always() | |
| uses: actions/cache/save@v6 | |
| with: | |
| key: ${{ steps.restore-ccache.outputs.cache-primary-key }}${{ steps.prepare-save-ccache.outputs.CCACHE_TIMESTAMP }} | |
| path: ${{ github.workspace }}/.ccache | |
| windows_portable: | |
| # Disable on pull_request and on framework PR builds | |
| if: | | |
| github.event_name != 'pull_request' && | |
| inputs.framework_ref == '' && | |
| (github.event_name != 'workflow_dispatch' || contains(inputs.platforms, 'windows_portable')) | |
| runs-on: windows-2025 | |
| steps: | |
| - name: Clone repository | |
| uses: actions/checkout@v7 | |
| - name: Configure workflow | |
| shell: bash | |
| env: | |
| pull_request_title: ${{ github.event.pull_request.title }} | |
| run: | | |
| bash ./buildscripts/ci/tools/make_build_mode_env.sh -e ${{ github.event_name }} -m ${{ inputs.build_mode }} | |
| BUILD_MODE=$(cat ./build.artifacts/env/build_mode.env) | |
| if [ -n "${{ inputs.build_number }}" ]; then | |
| BUILD_NUMBER="${{ inputs.build_number }}" | |
| bash ./buildscripts/ci/tools/make_build_number.sh "$BUILD_NUMBER" | |
| else | |
| bash ./buildscripts/ci/tools/make_build_number.sh | |
| fi | |
| BUILD_NUMBER=$(cat ./build.artifacts/env/build_number.env) | |
| DO_UPDATE_TS='false' | |
| if [[ "$BUILD_MODE" == "testing" || "$BUILD_MODE" == "stable" ]]; then | |
| DO_UPDATE_TS='true' | |
| if [ -z "${{ secrets.TRANSIFEX_API_TOKEN }}" ]; then | |
| echo "::warning::TRANSIFEX_API_TOKEN is empty; updating .ts files disabled" | |
| DO_UPDATE_TS='false' | |
| fi | |
| fi | |
| DO_PLACEHOLDER_TRANSLATIONS='false' | |
| if [[ "$BUILD_MODE" == "nightly" || "$BUILD_MODE" == "devel" ]]; then | |
| DO_PLACEHOLDER_TRANSLATIONS='true' | |
| fi | |
| DO_PUBLISH='false' | |
| if [ "${{ inputs.publish }}" == "on" ]; then | |
| DO_PUBLISH='true' | |
| if [ -z "${{ secrets.OSUOSL_SSH_ENCRYPT_SECRET }}" ]; then | |
| echo "::warning::OSUOSL_SSH_ENCRYPT_SECRET is empty; not publishing to OSUOSL" | |
| DO_PUBLISH='false' | |
| fi | |
| fi | |
| ADD_INFO="_${GITHUB_REF#refs/heads/}" | |
| if [ "${{ github.event_name }}" == "pull_request" ]; then | |
| ADD_INFO="_${{ github.event.pull_request.number }}_${pull_request_title}" | |
| fi | |
| UPLOAD_ARTIFACT_NAME="$(tr '":<>|*?/\\’' '_' <<<"MU4_${BUILD_NUMBER}_Win_portable${ADD_INFO}")" | |
| echo "github.repository: ${{ github.repository }}" | |
| echo "BUILD_MODE=$BUILD_MODE" | tee -a $GITHUB_ENV | |
| echo "BUILD_NUMBER=$BUILD_NUMBER" | tee -a $GITHUB_ENV | |
| echo "DO_UPDATE_TS=$DO_UPDATE_TS" | tee -a $GITHUB_ENV | |
| echo "DO_PLACEHOLDER_TRANSLATIONS=$DO_PLACEHOLDER_TRANSLATIONS" | tee -a $GITHUB_ENV | |
| echo "DO_PUBLISH=$DO_PUBLISH" | tee -a $GITHUB_ENV | |
| echo "UPLOAD_ARTIFACT_NAME=$UPLOAD_ARTIFACT_NAME" | tee -a $GITHUB_ENV | |
| - parallel: | |
| - name: Restore ccache files | |
| id: restore-ccache | |
| uses: actions/cache/restore@v6 | |
| with: | |
| path: ${{ github.workspace }}/.ccache | |
| key: ${{runner.os}}-${{runner.arch}}-ccache- | |
| restore-keys: ${{runner.os}}-${{runner.arch}}-ccache- | |
| - name: Setup ccache | |
| run: | | |
| choco install -y ccache | |
| bash ./buildscripts/ci/tools/setup_ccache_config.sh | |
| - parallel: | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: 6.11.1 | |
| host: 'windows' | |
| target: 'desktop' | |
| arch: 'win64_msvc2022_64' | |
| modules: 'qt5compat qtcanvaspainter qtnetworkauth qtshadertools qttasktree qtwebsockets' | |
| cache: true | |
| # https://github.com/miurahr/aqtinstall/pull/1000#issuecomment-4109913885 | |
| aqtsource: 'git+https://github.com/miurahr/aqtinstall.git' | |
| - name: Setup environment | |
| run: | | |
| buildscripts\ci\windows\setup.bat --portable ON | |
| - parallel: | |
| - name: Generate _en.ts files | |
| shell: bash | |
| env: | |
| LUPDATE_ARGS: "" | |
| POSTPROCESS_ARGS: "--warn-only ${{ env.DO_PLACEHOLDER_TRANSLATIONS == 'true' && '--generate-placeholder-translations' || '' }}" | |
| POSTPROCESS_LAUNCHER: "python3 -X utf8" | |
| run: | | |
| bash ./tools/translations/run_lupdate.sh | |
| - name: Update .ts files (tx pull) | |
| if: env.DO_UPDATE_TS == 'true' | |
| uses: cbjeukendrup/cli-action@windows | |
| with: | |
| token: ${{ secrets.TRANSIFEX_API_TOKEN }} | |
| args: "pull -f" | |
| - name: Build | |
| shell: cmd | |
| run: | | |
| IF ${{ env.SENTRY_URL != 0 }} == true ( SET C_URL="${{ env.SENTRY_URL }}" ) ELSE ( SET C_URL="" ) | |
| buildscripts\ci\windows\build.bat --portable ON -n ${{ env.BUILD_NUMBER }} --crash_log_url %C_URL% --dockwidgets_v2 ${{ inputs.dockwidgets_v2 == 'ON' && 'ON' || 'OFF' }} | |
| - name: Show ccache stats | |
| run: | | |
| ccache -sv | |
| - name: Package | |
| shell: cmd | |
| run: | | |
| IF ${{ secrets.WIN_SIGN_S3_SECRET != 0 }} == true ( SET S_S=${{ secrets.WIN_SIGN_S3_SECRET }} ) ELSE ( SET S_S="''" ) | |
| IF ${{ secrets.WIN_SIGN_S3_KEY != 0 }} == true ( SET S_K=${{ secrets.WIN_SIGN_S3_KEY }} ) ELSE ( SET S_K="''" ) | |
| buildscripts\ci\windows\package.bat --portable ON --signsecret %S_S% --signkey %S_K% | |
| - name: Checksum | |
| run: | | |
| bash ./buildscripts/ci/tools/checksum.sh | |
| - name: Publish to OSUOSL | |
| if: env.DO_PUBLISH == 'true' | |
| shell: bash | |
| run: | | |
| bash ./buildscripts/ci/tools/osuosl/publish.sh -s ${{ secrets.OSUOSL_SSH_ENCRYPT_SECRET }} --os windows -v 4 --arch x86_64 | |
| - name: Upload artifacts on GitHub | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ env.UPLOAD_ARTIFACT_NAME }} | |
| path: build.artifacts\ | |
| - name: Prepare ccache files for saving | |
| id: prepare-save-ccache | |
| if: always() | |
| shell: bash | |
| run: | | |
| ccache --recompress 10 | |
| echo "CCACHE_TIMESTAMP=$(date -u +"%F-%T")" | tee -a $GITHUB_OUTPUT | |
| - name: Save ccache files | |
| if: always() | |
| uses: actions/cache/save@v6 | |
| with: | |
| key: ${{ steps.restore-ccache.outputs.cache-primary-key }}${{ steps.prepare-save-ccache.outputs.CCACHE_TIMESTAMP }} | |
| path: ${{ github.workspace }}/.ccache | |
| # windows_sign_test: | |
| # if: github.event_name != 'workflow_dispatch' || contains(inputs.platforms, 'sign_test') | |
| # runs-on: windows-2025 | |
| # steps: | |
| # - name: Clone repository | |
| # uses: actions/checkout@v7 | |
| # - name: Sign test | |
| # shell: cmd | |
| # run: | | |
| # IF ${{ secrets.WIN_SIGN_S3_SECRET != 0 }} == true ( SET S_S=${{ secrets.WIN_SIGN_S3_SECRET }} ) ELSE ( SET S_S="''" ) | |
| # IF ${{ secrets.WIN_SIGN_S3_KEY != 0 }} == true ( SET S_K=${{ secrets.WIN_SIGN_S3_KEY }} ) ELSE ( SET S_P="''" ) | |
| # buildscripts\ci\windows\sign_test.bat --secret %S_S% --key %S_K% |