diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 8a7218a7b2ef2..9a51a8e75d704 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -88,7 +88,7 @@ jobs: 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/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 @@ -97,23 +97,23 @@ jobs: *) MUSE_APP_BUILD_MODE=dev;; esac - buildscripts/ci/tools/make_build_number.sh + build/ci/tools/make_build_number.sh BUILD_NUMBER="$(<"${ARTIFACTS_DIR}/env/build_number.env")" - buildscripts/ci/tools/make_version_env.sh "${BUILD_NUMBER}" + build/ci/tools/make_version_env.sh "${BUILD_NUMBER}" BUILD_VERSION="$(<"${ARTIFACTS_DIR}/env/build_version.env")" - buildscripts/ci/tools/make_branch_env.sh + build/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)" + build/ci/tools/make_release_channel_env.sh -c "${MUSE_APP_BUILD_MODE}" + build/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" + build/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 + build/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}" diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_linux.yml index 951dc159115f9..b11fc8938b9c6 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_linux.yml @@ -46,10 +46,15 @@ jobs: - name: Clone repository uses: actions/checkout@v4 - name: "Configure workflow" + env: + pull_request_title: ${{ github.event.pull_request.title }} run: | sudo bash ./build/ci/tools/make_build_mode_env.sh -e ${{ github.event_name }} -m ${{ inputs.build_mode }} BUILD_MODE=$(cat ./build.artifacts/env/build_mode.env) + sudo bash ./build/ci/tools/make_build_number.sh + BUILD_NUMBER=$(cat ./build.artifacts/env/build_number.env) + DO_BUILD='true' DO_PUBLISH='false' @@ -61,12 +66,22 @@ jobs: fi fi + ADD_INFO="_${GITHUB_REF#refs/heads/}" + if [ "${{ github.event_name }}" == "schedule" ] && [ "${{ github.event.schedule }}" == "0 5 */1 */1 *" ]; then ADD_INFO="_${CURRENT_RELEASE_BRANCH}"; fi + if [ "${{ github.event_name }}" == "pull_request" ]; then ADD_INFO="_${{ github.event.pull_request.number }}_${pull_request_title}"; fi + UPLOAD_ARTIFACT_NAME="$(tr '":<>|*?/\\?' '_' <<<"Mu3.7_${BUILD_NUMBER}_Lin${ADD_INFO}")" + + echo "github.repository: ${{ github.repository }}" echo "BUILD_MODE=$BUILD_MODE" >> $GITHUB_ENV echo "BUILD_MODE: $BUILD_MODE" + echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV + echo "BUILD_NUMBER: $BUILD_NUMBER" echo "DO_BUILD=$DO_BUILD" >> $GITHUB_ENV echo "DO_BUILD: $DO_BUILD" echo "DO_PUBLISH=$DO_PUBLISH" >> $GITHUB_ENV echo "DO_PUBLISH: $DO_PUBLISH" + echo "UPLOAD_ARTIFACT_NAME=$UPLOAD_ARTIFACT_NAME" >> $GITHUB_ENV + echo "UPLOAD_ARTIFACT_NAME: $UPLOAD_ARTIFACT_NAME" - name: Setup environment if: env.DO_BUILD == 'true' @@ -93,7 +108,7 @@ jobs: if: env.DO_BUILD == 'true' uses: actions/upload-artifact@v4 with: - name: MuseScore_${{ github.run_id }} + name: ${{ env.UPLOAD_ARTIFACT_NAME }} path: ./build.artifacts/ run_mtests: diff --git a/.github/workflows/build_macos.yml b/.github/workflows/build_macos.yml index 1532b07626b90..d1dbefdf80f41 100644 --- a/.github/workflows/build_macos.yml +++ b/.github/workflows/build_macos.yml @@ -38,7 +38,7 @@ env: DEVELOPER_DIR: /Applications/Xcode_13.1.app/Contents/Developer jobs: - macos_universal: + macos: runs-on: macos-12 steps: - name: Cancel Previous Runs @@ -50,10 +50,15 @@ jobs: with: fetch-depth: 3 - name: "Configure workflow" + env: + pull_request_title: ${{ github.event.pull_request.title }} run: | bash ./build/ci/tools/make_build_mode_env.sh -e ${{ github.event_name }} -m ${{ inputs.build_mode }} BUILD_MODE=$(cat ./build.artifacts/env/build_mode.env) + bash ./build/ci/tools/make_build_number.sh + BUILD_NUMBER=$(cat ./build.artifacts/env/build_number.env) + DO_PUBLISH='false' if [[ "${{ inputs.publish }}" == "on" || "$BUILD_MODE" == "nightly" ]]; then DO_PUBLISH='true' @@ -78,15 +83,24 @@ jobs: DO_BUILD='true' + ADD_INFO="_${GITHUB_REF#refs/heads/}" + if [ "${{ github.event_name }}" == "schedule" ] && [ "${{ github.event.schedule }}" == "0 5 */1 */1 *" ]; then ADD_INFO="_${CURRENT_RELEASE_BRANCH}"; fi + if [ "${{ github.event_name }}" == "pull_request" ]; then ADD_INFO="_${{ github.event.pull_request.number }}_${pull_request_title}"; fi + UPLOAD_ARTIFACT_NAME="$(tr '":<>|*?/\\?' '_' <<<"Mu3.7_${BUILD_NUMBER}_Mac${ADD_INFO}")" + echo "github.repository: ${{ github.repository }}" echo "BUILD_MODE=$BUILD_MODE" >> $GITHUB_ENV echo "BUILD_MODE: $BUILD_MODE" + echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV + echo "BUILD_NUMBER: $BUILD_NUMBER" echo "DO_BUILD=$DO_BUILD" >> $GITHUB_ENV echo "DO_BUILD: $DO_BUILD" echo "DO_NOTARIZE=$DO_NOTARIZE" >> $GITHUB_ENV echo "DO_NOTARIZE: $DO_NOTARIZE" echo "DO_PUBLISH=$DO_PUBLISH" >> $GITHUB_ENV echo "DO_PUBLISH: $DO_PUBLISH" + echo "UPLOAD_ARTIFACT_NAME=$UPLOAD_ARTIFACT_NAME" >> $GITHUB_ENV + echo "UPLOAD_ARTIFACT_NAME: $UPLOAD_ARTIFACT_NAME" - name: Free disk space if: env.DO_BUILD == 'true' @@ -131,5 +145,5 @@ jobs: if: env.DO_BUILD == 'true' uses: actions/upload-artifact@v4 with: - name: MuseScore_${{ github.run_id }} + name: ${{ env.UPLOAD_ARTIFACT_NAME }} path: ./build.artifacts/ diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index 5456086cf61eb..415b2a4ba6663 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -60,10 +60,15 @@ jobs: submodules: 'true' - name: "Configure workflow" shell: bash + env: + pull_request_title: ${{ github.event.pull_request.title }} run: | bash ./build/ci/tools/make_build_mode_env.sh -e ${{ github.event_name }} -m ${{ inputs.build_mode }} BUILD_MODE=$(cat ./build.artifacts/env/build_mode.env) + bash ./build/ci/tools/make_build_number.sh + BUILD_NUMBER=$(cat ./build.artifacts/env/build_number.env) + DO_PUBLISH='false' if [[ "${{ inputs.publish }}" == "on" || "$BUILD_MODE" == "nightly" ]]; then DO_PUBLISH='true' @@ -81,8 +86,16 @@ jobs: DO_BUILD='true' + ADD_INFO="_${GITHUB_REF#refs/heads/}" + if [ "${{ github.event_name }}" == "schedule" ] && [ "${{ github.event.schedule }}" == "0 5 */1 */1 *" ]; then ADD_INFO="_${CURRENT_RELEASE_BRANCH}"; fi + if [ "${{ github.event_name }}" == "pull_request" ]; then ADD_INFO="_${{ github.event.pull_request.number }}_${pull_request_title}"; fi + UPLOAD_ARTIFACT_NAME="$(tr '":<>|*?/\\’' '_' <<<"Mu3.7_${BUILD_NUMBER}_Win64${ADD_INFO}")" + + echo "github.repository: ${{ github.repository }}" echo "BUILD_MODE=$BUILD_MODE" >> $GITHUB_ENV echo "BUILD_MODE: $BUILD_MODE" + echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV + echo "BUILD_NUMBER: $BUILD_NUMBER" echo "DO_BUILD=$DO_BUILD" >> $GITHUB_ENV echo "DO_BUILD: $DO_BUILD" echo "DO_PUBLISH=$DO_PUBLISH" >> $GITHUB_ENV @@ -91,6 +104,8 @@ jobs: echo "DO_CHECKSUM: $DO_CHECKSUM" echo "DO_APPCAST=$DO_APPCAST" >> $GITHUB_ENV echo "DO_APPCAST: $DO_APPCAST" + echo "UPLOAD_ARTIFACT_NAME=$UPLOAD_ARTIFACT_NAME" >> $GITHUB_ENV + echo "UPLOAD_ARTIFACT_NAME: $UPLOAD_ARTIFACT_NAME" - name: Setup environment if: env.DO_BUILD == 'true' @@ -129,7 +144,7 @@ jobs: if: ${{ always() }} uses: actions/upload-artifact@v4 with: - name: MuseScore_x64_${{ github.run_id }} + name: ${{ env.UPLOAD_ARTIFACT_NAME }} path: build.artifacts\ windows_x32: @@ -149,19 +164,14 @@ jobs: git submodule update --init --recursive - name: "Configure workflow" shell: bash + env: + pull_request_title: ${{ github.event.pull_request.title }} run: | bash ./build/ci/tools/make_build_mode_env.sh -e ${{ github.event_name }} -m ${{ inputs.build_mode }} BUILD_MODE=$(cat ./build.artifacts/env/build_mode.env) - echo "BUILD_MODE=$BUILD_MODE" >> $GITHUB_ENV - DO_BUILD='false' - if [[ "$BUILD_MODE" == "testing" || "$BUILD_MODE" == "stable" ]]; then - DO_BUILD='true' - fi - DO_BUILD='true' - echo "!! ATTENTION !! Windows x32 build run only for 'testing' and 'stable', and SKIP for 'pull requests' and nightly" - echo "DO_BUILD=$DO_BUILD" >> $GITHUB_ENV - echo "DO_BUILD: $DO_BUILD" + bash ./build/ci/tools/make_build_number.sh + BUILD_NUMBER=$(cat ./build.artifacts/env/build_number.env) DO_PUBLISH='false' if [ "${{ inputs.publish }}" == "on" ]; then @@ -171,8 +181,40 @@ jobs: DO_PUBLISH='false' fi fi + + DO_CHECKSUM='true' + if [ "$BUILD_MODE" == "devel" ]; then DO_CHECKSUM='false'; fi + + DO_APPCAST='true' + if [ "$BUILD_MODE" == "devel" ]; then DO_APPCAST='false'; fi + + #DO_BUILD='false' + #if [[ "$BUILD_MODE" == "testing" || "$BUILD_MODE" == "stable" ]]; then + #DO_BUILD='true' + #fi + #echo "!! ATTENTION !! Windows x32 build run only for 'testing' and 'stable', and SKIP for 'pull requests' and nightly" + DO_BUILD='true' + + ADD_INFO="_${GITHUB_REF#refs/heads/}" + if [ "${{ github.event_name }}" == "schedule" ] && [ "${{ github.event.schedule }}" == "0 5 */1 */1 *" ]; then ADD_INFO="_${CURRENT_RELEASE_BRANCH}"; fi + if [ "${{ github.event_name }}" == "pull_request" ]; then ADD_INFO="_${{ github.event.pull_request.number }}_${pull_request_title}"; fi + UPLOAD_ARTIFACT_NAME="$(tr '":<>|*?/\\?' '_' <<<"Mu3.7_${BUILD_NUMBER}_Win32${ADD_INFO}")" + + echo "github.repository: ${{ github.repository }}" + echo "BUILD_MODE=$BUILD_MODE" >> $GITHUB_ENV + echo "BUILD_MODE: $BUILD_MODE" + echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV + echo "BUILD_NUMBER: $BUILD_NUMBER" + echo "DO_BUILD=$DO_BUILD" >> $GITHUB_ENV + echo "DO_BUILD: $DO_BUILD" echo "DO_PUBLISH=$DO_PUBLISH" >> $GITHUB_ENV echo "DO_PUBLISH: $DO_PUBLISH" + echo "DO_CHECKSUM=$DO_CHECKSUM" >> $GITHUB_ENV + echo "DO_CHECKSUM: $DO_CHECKSUM" + echo "DO_APPCAST=$DO_APPCAST" >> $GITHUB_ENV + echo "DO_APPCAST: $DO_APPCAST" + echo "UPLOAD_ARTIFACT_NAME=$UPLOAD_ARTIFACT_NAME" >> $GITHUB_ENV + echo "UPLOAD_ARTIFACT_NAME: $UPLOAD_ARTIFACT_NAME" - name: Setup environment if: env.DO_BUILD == 'true' @@ -211,7 +253,7 @@ jobs: if: env.DO_BUILD == 'true' uses: actions/upload-artifact@v4 with: - name: MuseScore_x86_${{ github.run_id }} + name: ${{ env.UPLOAD_ARTIFACT_NAME }} path: build.artifacts\ windows_portable: @@ -232,20 +274,15 @@ jobs: git submodule update --init --recursive - name: "Configure workflow" shell: bash + env: + pull_request_title: ${{ github.event.pull_request.title }} run: | bash ./build/ci/tools/make_build_mode_env.sh -e ${{ github.event_name }} -m ${{ inputs.build_mode }} BUILD_MODE=$(cat ./build.artifacts/env/build_mode.env) - echo "BUILD_MODE=$BUILD_MODE" >> $GITHUB_ENV - DO_BUILD='false' - if [[ "$BUILD_MODE" == "testing" || "$BUILD_MODE" == "stable" ]]; then - DO_BUILD='true' - fi - echo "!! ATTENTION !! Windows portable build run only for 'testing' and 'stable', and SKIP for 'pull requests' and nightly" - echo "DO_BUILD=$DO_BUILD" >> $GITHUB_ENV - echo "DO_BUILD: $DO_BUILD" + bash ./build/ci/tools/make_build_number.sh + BUILD_NUMBER=$(cat ./build.artifacts/env/build_number.env) - DO_PUBLISH='false' if [ "${{ inputs.publish }}" == "on" ]; then DO_PUBLISH='true' if [ -z "${{ secrets.OSUOSL_SSH_ENCRYPT_SECRET }}" ]; then @@ -253,8 +290,40 @@ jobs: DO_PUBLISH='false' fi fi + + DO_CHECKSUM='true' + if [ "$BUILD_MODE" == "devel" ]; then DO_CHECKSUM='false'; fi + + DO_APPCAST='true' + if [ "$BUILD_MODE" == "devel" ]; then DO_APPCAST='false'; fi + + DO_BUILD='false' + if [[ "$BUILD_MODE" == "testing" || "$BUILD_MODE" == "stable" ]]; then + DO_BUILD='true' + fi + echo "!! ATTENTION !! Windows portable build run only for 'testing' and 'stable', and SKIP for 'pull requests' and nightly" + + DO_PUBLISH='false' + ADD_INFO="_${GITHUB_REF#refs/heads/}" + if [ "${{ github.event_name }}" == "schedule" ] && [ "${{ github.event.schedule }}" == "0 5 */1 */1 *" ]; then ADD_INFO="_${CURRENT_RELEASE_BRANCH}"; fi + if [ "${{ github.event_name }}" == "pull_request" ]; then ADD_INFO="_${{ github.event.pull_request.number }}_${pull_request_title}"; fi + UPLOAD_ARTIFACT_NAME="$(tr '":<>|*?/\\?' '_' <<<"Mu3.7_${BUILD_NUMBER}_WinPortable${ADD_INFO}")" + + echo "github.repository: ${{ github.repository }}" + echo "BUILD_MODE=$BUILD_MODE" >> $GITHUB_ENV + echo "BUILD_MODE=$BUILD_MODE" + echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV + echo "BUILD_NUMBER: $BUILD_NUMBER" + echo "DO_BUILD=$DO_BUILD" >> $GITHUB_ENV + echo "DO_BUILD: $DO_BUILD" echo "DO_PUBLISH=$DO_PUBLISH" >> $GITHUB_ENV echo "DO_PUBLISH: $DO_PUBLISH" + echo "DO_CHECKSUM=$DO_CHECKSUM" >> $GITHUB_ENV + echo "DO_CHECKSUM: $DO_CHECKSUM" + echo "DO_APPCAST=$DO_APPCAST" >> $GITHUB_ENV + echo "DO_APPCAST: $DO_APPCAST" + echo "UPLOAD_ARTIFACT_NAME=$UPLOAD_ARTIFACT_NAME" >> $GITHUB_ENV + echo "UPLOAD_ARTIFACT_NAME: $UPLOAD_ARTIFACT_NAME" - name: Setup environment if: env.DO_BUILD == 'true' @@ -293,5 +362,5 @@ jobs: if: env.DO_BUILD == 'true' uses: actions/upload-artifact@v4 with: - name: MuseScore_Portable_${{ github.run_id }} + name: ${{ env.UPLOAD_ARTIFACT_NAME }} path: build.artifacts\ diff --git a/build/ci/tools/make_build_mode_env.sh b/build/ci/tools/make_build_mode_env.sh index ce7038feedd9b..e8bccd416f4a2 100755 --- a/build/ci/tools/make_build_mode_env.sh +++ b/build/ci/tools/make_build_mode_env.sh @@ -41,8 +41,8 @@ if [ $MODE_IS_VALID -ne 1 ] ; then exit 1 fi -mkdir $ARTIFACTS_DIR -mkdir $ARTIFACTS_DIR/env +mkdir -p $ARTIFACTS_DIR +mkdir -p $ARTIFACTS_DIR/env echo $BUILD_MODE > $ARTIFACTS_DIR/env/build_mode.env echo "BUILD_MODE: $(cat $ARTIFACTS_DIR/env/build_mode.env)" diff --git a/build/ci/tools/make_build_number.sh b/build/ci/tools/make_build_number.sh new file mode 100755 index 0000000000000..0b2a0696fe441 --- /dev/null +++ b/build/ci/tools/make_build_number.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: GPL-3.0-only +# MuseScore-Studio-CLA-applies +# +# MuseScore Studio +# Music Composition & Notation +# +# Copyright (C) 2021 MuseScore Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 3 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +ARTIFACTS_DIR="build.artifacts" + +NUMBER=$1 +if [ -z "$NUMBER" ]; then + NUMBER=$(date -u +%y%j%H%M) # less than 2147483647 to fit in Int32 for WiX packaging tool +fi + +if [ -z "$NUMBER" ]; then echo "error: not set BUILD_NUMBER"; exit 1; fi + +if [ -z "$2" ]; then OUT_DIR=$ARTIFACTS_DIR/env; fi + +mkdir -p $ARTIFACTS_DIR +mkdir -p $ARTIFACTS_DIR/env + +echo $NUMBER > $ARTIFACTS_DIR/env/build_number.env +echo "BUILD_NUMBER: $(cat $ARTIFACTS_DIR/env/build_number.env)"