[ext] improved engraving api docs #9978
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: Linux' | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| inputs: | |
| platforms: | |
| description: 'Platforms to build:' | |
| default: 'linux_x64 linux_arm64' | |
| 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 | |
| workflow_call: | |
| inputs: | |
| platforms: | |
| description: 'Platforms to build:' | |
| default: 'linux_x64 linux_arm64' | |
| 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 | |
| jobs: | |
| build: | |
| if: github.event_name != 'workflow_dispatch' || contains(inputs.platforms, 'linux_x64') || contains(inputs.platforms, 'linux_arm64') | |
| runs-on: ${{ matrix.runs-on }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: ${{ | |
| (github.event_name != 'workflow_dispatch' | |
| || (contains(inputs.platforms, 'linux_x64') && contains(inputs.platforms, 'linux_arm64'))) | |
| && fromJson('["linux_x64","linux_arm64"]') | |
| || (contains(inputs.platforms, 'linux_x64') && fromJson('["linux_x64"]') | |
| || (contains(inputs.platforms, 'linux_arm64') && fromJson('["linux_arm64"]') | |
| || fromJson('[]'))) | |
| }} | |
| include: | |
| - platform: linux_x64 | |
| arch: x86_64 | |
| runs-on: ubuntu-22.04 | |
| qt-host: linux | |
| qt-arch: linux_gcc_64 | |
| dump-symbols-arch: x86-64 | |
| - platform: linux_arm64 | |
| arch: aarch64 | |
| runs-on: ubuntu-24.04-arm | |
| qt-host: linux_arm64 | |
| qt-arch: linux_gcc_arm64 | |
| dump-symbols-arch: aarch64 | |
| steps: | |
| - name: Cancel Previous Runs | |
| uses: styfle/[email protected] | |
| with: | |
| access_token: ${{ github.token }} | |
| - name: Clone repository | |
| uses: actions/checkout@v6 | |
| - name: Configure workflow | |
| 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}_Lin_${{ matrix.arch }}${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 | |
| echo "CCACHE_TIMESTAMP=$(date -u +"%F-%T")" | tee -a $GITHUB_ENV | |
| - name: Restore ccache files | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ github.workspace }}/.ccache | |
| key: ${{runner.os}}-${{runner.arch}}-ccache-${{ env.CCACHE_TIMESTAMP }} | |
| restore-keys: ${{runner.os}}-${{runner.arch}}-ccache- | |
| - name: Setup ccache | |
| run: | | |
| sudo apt-get update && sudo apt-get install -y ccache | |
| bash ./buildscripts/ci/tools/setup_ccache_config.sh | |
| - name: Install Qt | |
| uses: jurplel/install-qt-action@v4 | |
| with: | |
| version: 6.10.0 | |
| host: ${{ matrix.qt-host }} | |
| target: 'desktop' | |
| arch: ${{ matrix.qt-arch }} | |
| modules: 'qt5compat qtnetworkauth qtscxml qtshadertools qtwebsockets' | |
| - name: Setup environment | |
| run: | | |
| bash ./buildscripts/ci/linux/setup.sh --arch ${{ matrix.arch }} | |
| - name: Generate _en.ts files | |
| env: | |
| LUPDATE_ARGS: "" | |
| POSTPROCESS_ARGS: ${{ env.DO_PLACEHOLDER_TRANSLATIONS == 'true' && '--generate-placeholder-translations' || '' }} | |
| run: | | |
| bash ./tools/translations/run_lupdate.sh | |
| - name: Update .ts files (tx pull) | |
| if: env.DO_UPDATE_TS == 'true' | |
| uses: transifex/cli-action@v2 | |
| with: | |
| token: ${{ secrets.TRANSIFEX_API_TOKEN }} | |
| args: "pull -f" | |
| - name: Register gcc problem matcher | |
| run: echo "::add-matcher::.github/problem_matchers/gcc.json" | |
| - name: Build | |
| run: | | |
| C_URL=${SENTRY_URL}; if [ -z "$C_URL" ]; then C_URL="''"; fi | |
| bash ./buildscripts/ci/linux/build.sh -n ${{ env.BUILD_NUMBER }} --crash_log_url $C_URL --arch ${{ matrix.arch }} | |
| echo "============== ccache ===============" | |
| ccache -sv | |
| - name: Package | |
| run: | | |
| bash ./buildscripts/ci/linux/package.sh --arch ${{ matrix.arch }} | |
| - name: Checksum | |
| run: | | |
| bash ./buildscripts/ci/tools/checksum.sh | |
| - name: Generate and upload dump symbols | |
| if: env.DO_UPLOAD_SYMBOLS == 'true' | |
| run: | | |
| APP_BIN=$(find "$(pwd)/build.release/src/app/" -type f -name "mscore4portable*" -print -quit) | |
| ARCH=${{ matrix.dump-symbols-arch }} | |
| sudo cmake -DAPP_BIN=${APP_BIN} \ | |
| -DARCH=${ARCH} \ | |
| -DSENTRY_URL=https://sentry.musescore.com \ | |
| -DSENTRY_ORG=sentry \ | |
| -DSENTRY_AUTH_TOKEN=${{ secrets.SENTRY_MUSE_AUTH_TOKEN }} \ | |
| -DSENTRY_PROJECT=${SENTRY_PROJECT} \ | |
| -P buildscripts/ci/crashdumps/ci_generate_and_upload.cmake | |
| - name: Publish to OSUOSL | |
| if: env.DO_PUBLISH == 'true' | |
| run: | | |
| bash ./buildscripts/ci/tools/osuosl/publish.sh -s ${{ secrets.OSUOSL_SSH_ENCRYPT_SECRET }} --os linux --arch ${{ matrix.arch }} -v 4 | |
| - name: Upload artifacts on GitHub | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: ${{ env.UPLOAD_ARTIFACT_NAME }} | |
| path: ./build.artifacts/ |