diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_appimage.yml similarity index 98% rename from .github/workflows/build_linux.yml rename to .github/workflows/build_appimage.yml index 64f13d21f..fa47054b0 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_appimage.yml @@ -1,4 +1,4 @@ -name: BuildLinux +name: BuildAppimage on: workflow_dispatch diff --git a/.github/workflows/test_fedora.yml b/.github/workflows/test_fedora.yml new file mode 100644 index 000000000..460eca83b --- /dev/null +++ b/.github/workflows/test_fedora.yml @@ -0,0 +1,41 @@ +name: Fedora + +on: + push: + branches: + - main + - release + pull_request: + branches: + - main + - release + +jobs: + testFedora: + runs-on: ubuntu-latest + container: + image: fedora:rawhide + steps: + - name: Install Packages (dnf) + run: | + dnf -y update + dnf -y install adobe-source-sans-pro-fonts hunspell-en hunspell-en-GB hunspell-en-US + dnf -y install enchant2-devel git hunspell-devel qt6-qttools-devel qt6-qtsvg-devel + dnf -y install python3-devel + - name: Checkout Source + uses: actions/checkout@v4 + - name: Install Dependencies (pip) + run: | + pip install -U -r requirements.txt -r tests/requirements.txt + - name: Run Build Commands + run: | + python pkgutils.py qtlrelease + python pkgutils.py sample + - name: Run Tests + run: | + export QT_QPA_PLATFORM=offscreen + python -m pytest -v --cov=novelwriter --timeout=60 + - name: Upload to Codecov + uses: codecov/codecov-action@v5 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_ubuntu.yml similarity index 98% rename from .github/workflows/test_linux.yml rename to .github/workflows/test_ubuntu.yml index b13e19c1d..9d538afa2 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_ubuntu.yml @@ -1,4 +1,4 @@ -name: Linux +name: Ubuntu on: push: diff --git a/utils/assets.py b/utils/assets.py index 1849c6962..5d8f8de12 100644 --- a/utils/assets.py +++ b/utils/assets.py @@ -160,6 +160,14 @@ def updateTranslationSources(args: argparse.Namespace) -> None: return +def getLReleaseExec() -> str | None: + """Look for the lrelease executable.""" + for entry in ["lrelease-qt6", "lrelease"]: + if subprocess.call(f"type {entry}", shell=True) == 0: + return entry + return None + + def buildTranslationAssets(args: argparse.Namespace | None = None) -> None: """Build the lang.qm files for Qt Linguist.""" print("") @@ -184,7 +192,10 @@ def buildTranslationAssets(args: argparse.Namespace | None = None) -> None: print("") try: - subprocess.call(["lrelease", "-verbose", *srcList]) + if lrelease := getLReleaseExec(): + subprocess.call([lrelease, "-verbose", *srcList]) + else: + raise FileNotFoundError("No lrelease executable found") except Exception as exc: print("Qt Linguist tools seem to be missing") print("On Debian/Ubuntu, install: qttools5-dev-tools")