po: fix malformed Italian catalog (#703) #1248
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: Meson CI | |
| on: | |
| push: | |
| branches: [ master ] | |
| tags: [ 'v*' ] | |
| pull_request: | |
| branches: [ master ] | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: ${{ matrix.config.name }} | |
| runs-on: ${{ matrix.config.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| config: | |
| - name: Windows MSVC Release | |
| os: windows-latest | |
| msvc: true | |
| devenv: | | |
| Import-Module "$env:VS\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" | |
| Enter-VsDevShell -VsInstallPath $env:VS -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64" | |
| buildtype: release | |
| args: >- | |
| -Ddefault_library=static | |
| --force-fallback-for=zlib,harfbuzz,freetype2,fribidi,libpng | |
| -Dfallback_nasm=true | |
| -Dfreetype2:harfbuzz=disabled | |
| -Dharfbuzz:freetype=disabled | |
| -Dharfbuzz:cairo=disabled | |
| -Dharfbuzz:glib=disabled | |
| -Dharfbuzz:gobject=disabled | |
| -Dharfbuzz:tests=disabled | |
| -Dharfbuzz:docs=disabled | |
| -Dfribidi:tests=false | |
| -Dfribidi:docs=false | |
| -Dlibass:fontconfig=disabled | |
| #- { | |
| # name: Windows MinGW, | |
| # os: windows-latest, | |
| # msvc: false | |
| #} | |
| - { | |
| name: Ubuntu Debug, | |
| os: ubuntu-latest, | |
| buildtype: debugoptimized, | |
| args: -Db_pch=false | |
| } | |
| - { | |
| name: Ubuntu Release, | |
| os: ubuntu-latest, | |
| buildtype: release, | |
| args: -Db_pch=false | |
| } | |
| - { | |
| name: macOS x86_64 Debug, | |
| os: macos-15-intel, | |
| buildtype: debugoptimized, | |
| args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true --force-fallback-for=ffms2 | |
| } | |
| - { | |
| name: macOS x86_64 Release, | |
| os: macos-15-intel, | |
| buildtype: release, | |
| args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true --force-fallback-for=ffms2 | |
| } | |
| - { | |
| name: macOS arm64 Debug, | |
| os: macos-15, | |
| buildtype: debugoptimized, | |
| args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true --force-fallback-for=ffms2 | |
| } | |
| - { | |
| name: macOS arm64 Release, | |
| os: macos-15, | |
| buildtype: release, | |
| args: -Ddefault_library=static -Dbuild_osx_bundle=true -Dlocal_boost=true --force-fallback-for=ffms2 | |
| } | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: '0' | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.x' | |
| - name: Setup Meson | |
| run: | | |
| python -m pip install --upgrade pip setuptools | |
| pip install meson | |
| # Taken from https://github.com/libass/libass/blob/0.17.5/.github/workflows/meson.yml#L118-L125 | |
| - name: Find Visual Studio | |
| if: matrix.config.msvc | |
| run: | | |
| $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" | |
| $vsPath = & $vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath | |
| if (-not $vsPath) { throw "Could not find a Visual Studio installation" } | |
| "VS=$vsPath" | |
| "VS=$vsPath" >> $env:GITHUB_ENV | |
| - name: Install dependencies (Windows) | |
| if: matrix.config.os == 'windows-latest' | |
| run: | | |
| choco install ninja innosetup | |
| $moonscripturl = "https://github.com/leafo/moonscript/releases/download/v0.6.0/moonscript-v0.6.0-windows-x86_64.zip" | |
| mkdir moonscript | |
| Invoke-WebRequest -Uri $moonscripturl -OutFile ".\moonscript\moonscript.zip" | |
| pushd moonscript | |
| 7z e moonscript.zip | |
| Get-Location | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| popd | |
| $gettexturl = "https://github.com/mlocati/gettext-iconv-windows/releases/download/v1.0-v1.18-r3/gettext1.0-iconv1.18-static-64.zip" | |
| Invoke-WebRequest -Uri $gettexturl -OutFile ".\gettext.zip" | |
| Expand-Archive ".\gettext.zip" -DestinationPath gettext | |
| pushd gettext/bin | |
| Get-Location | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
| popd | |
| - name: Install dependencies (MacOS) | |
| if: startsWith(matrix.config.os, 'macos-') | |
| run: | | |
| brew update | |
| if [ x"$(uname -m)" = x"x86_64" ]; then | |
| # This is a dependency of pulseaudio that does not have a prebuilt x86_64 package. | |
| brew install --build-from-source orc | |
| fi | |
| brew install ninja | |
| brew install libass zlib ffms2 fftw hunspell | |
| brew install pulseaudio # NO OpenAL in github CI | |
| # busted for the automation test suite (LuaJIT is Lua 5.1 to luarocks) | |
| brew install luajit luarocks | |
| luarocks --lua-dir="$(brew --prefix luajit)" --lua-version=5.1 install busted | |
| - name: Install dependencies (Linux) | |
| if: startsWith(matrix.config.os, 'ubuntu-') | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install ninja-build build-essential libx11-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev libhunspell-dev libcurl4-openssl-dev libuchardet-dev libgtest-dev libgmock-dev libwxgtk3.2-dev libportal-gtk3-dev | |
| # busted for the automation test suite (LuaJIT is Lua 5.1 to luarocks) | |
| sudo apt-get install -y lua5.1 liblua5.1-0-dev luarocks | |
| sudo luarocks --lua-version=5.1 install busted | |
| - name: Configure | |
| run: | | |
| ${{ matrix.config.devenv }} | |
| meson setup build ${{ matrix.config.args }} -Dbuildtype=${{ matrix.config.buildtype }} ${{ github.ref_type == 'tag' && '-Dofficial_release=true' || '' }} | |
| - name: Build | |
| run: | | |
| ${{ matrix.config.devenv }} | |
| meson compile -C build | |
| # The automation suite is registered at configure time only if the | |
| # busted probe succeeds, so make sure it can't silently drop out of CI | |
| - name: Check automation tests are registered | |
| if: ${{ !startsWith(matrix.config.os, 'windows-') }} | |
| run: meson test -C build --list | grep automation | |
| # --suite limits this to our own tests, excluding those of subproject deps | |
| - name: Run test | |
| run: | | |
| ${{ matrix.config.devenv }} | |
| meson test -C build --verbose --suite Aegisub | |
| # Windows artifacts | |
| - name: Generate Windows installer | |
| if: matrix.config.os == 'windows-latest' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| ${{ matrix.config.devenv }} | |
| meson compile win-installer -C build | |
| - name: Generate Windows portable installer | |
| if: matrix.config.os == 'windows-latest' | |
| run: | | |
| ${{ matrix.config.devenv }} | |
| cd build && ninja win-portable | |
| - name: Upload artifacts - win_installer | |
| uses: actions/upload-artifact@v6 | |
| if: matrix.config.os == 'windows-latest' | |
| with: | |
| name: ${{ matrix.config.name }} - installer | |
| path: build/Aegisub-*.exe | |
| if-no-files-found: error | |
| - name: Upload artifacts - portable.zip | |
| uses: actions/upload-artifact@v6 | |
| if: matrix.config.os == 'windows-latest' | |
| with: | |
| name: ${{ matrix.config.name }} - portable | |
| path: build/aegisub-portable-64.zip | |
| # macOS artifacts | |
| - name: Generate macOS installer | |
| if: startsWith(matrix.config.os, 'macos-') | |
| run: | | |
| meson compile osx-bundle -C build | |
| # Run osx-build-dmg but retry up to 10 times if it fails since hdiutil can be unreliable | |
| # See: https://github.com/actions/runner-images/issues/7522 | |
| max_tries=10 | |
| i=0 | |
| until meson compile osx-build-dmg -C build ; do | |
| if [ $i -eq $max_tries ]; then | |
| echo "Error: osx-build-dmg failed after ${max_tries} tries." | |
| exit 1 | |
| fi | |
| i=$((i+1)) | |
| done | |
| - name: Upload artifacts - macOS dmg | |
| uses: actions/upload-artifact@v6 | |
| if: startsWith(matrix.config.os, 'macos-') | |
| with: | |
| name: ${{ matrix.config.name }} - installer | |
| path: build/Aegisub-*.dmg | |
| if-no-files-found: error | |
| # Tarball | |
| - name: Generate tarball | |
| if: matrix.config.os == 'ubuntu-latest' && matrix.config.buildtype == 'release' | |
| run: | | |
| set -e | |
| meson dist --include-subprojects -C build | |
| # Make sure the subprojects we need are included | |
| mkdir distcheck | |
| tar -xJf build/meson-dist/*.tar.xz -C distcheck/ | |
| test -e distcheck/*/subprojects/luabins/meson.build | |
| test -e distcheck/*/subprojects/LuaJIT*/meson.build | |
| - name: Upload artifacts - tarball | |
| uses: actions/upload-artifact@v6 | |
| if: matrix.config.os == 'ubuntu-latest' && matrix.config.buildtype == 'release' | |
| with: | |
| name: Source Tarball | |
| path: build/meson-dist/*.tar.xz | |
| if-no-files-found: error |