chore(deps): bump platformdirs from 4.11.0 to 4.11.1 #642
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 | |
| on: | |
| push: | |
| branches: | |
| - master | |
| tags: | |
| - 'v*' | |
| pull_request: | |
| jobs: | |
| build-windows: | |
| runs-on: windows-2022 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Python | |
| uses: actions/setup-python@v7 | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: "auto" | |
| - name: Install dependencies | |
| run: uv sync --frozen | |
| - name: Display Python version | |
| run: uv run python -c "import sys; print(sys.version)" | |
| - name: Inspect Build Environment | |
| shell: powershell | |
| run: Write-Host $env:PATH | |
| - name: Enable Visual Studio Developer Command Prompt | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Build | |
| shell: powershell | |
| run: ./.github/workflows/install-windows.ps1 | |
| - name: Verify app launches (smoke test) | |
| # Launch the frozen friture.exe headless (offscreen Qt) and assert it | |
| # reaches full init. The MSIX itself is not installed here (it is | |
| # unsigned; the Store signs on ingestion) -- we validate the same frozen | |
| # binary the MSIX wraps. | |
| shell: bash | |
| run: uv run python scripts/smoke_test.py dist/friture/friture.exe --no-splash | |
| - name: Capture Friture log | |
| if: always() | |
| shell: bash | |
| run: | | |
| uv run python - <<'PY' | |
| import os, shutil, platformdirs | |
| src = os.path.join(platformdirs.user_log_dir("Friture", ""), "friture.log.txt") | |
| dst = "friture-smoke.log" | |
| if os.path.exists(src): | |
| shutil.copy2(src, dst) | |
| else: | |
| with open(dst, "w") as f: | |
| f.write("log not found: " + src) | |
| PY | |
| - name: Upload friture smoke-test log | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-smoke-log-windows | |
| path: friture-smoke.log | |
| if-no-files-found: warn | |
| - name: Upload friture msix | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-msix | |
| path: dist/friture-*.msix | |
| if-no-files-found: error | |
| - name: Upload friture msi | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-msi | |
| path: dist/friture-*.msi | |
| if-no-files-found: error | |
| - name: Upload friture zip | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-zip | |
| path: dist/friture.zip | |
| if-no-files-found: error | |
| - name: Upload import xref | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-import-xref | |
| path: build/friture/xref-friture.html | |
| if-no-files-found: error | |
| - name: Upload import graph | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-import-graph | |
| path: build/friture/graph-friture.dot | |
| if-no-files-found: error | |
| build-linux: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Python | |
| uses: actions/setup-python@v7 | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: "auto" | |
| - name: Install dependencies | |
| run: uv sync --frozen | |
| - name: Display Python version | |
| run: uv run python -c "import sys; print(sys.version)" | |
| - name: Build | |
| run: source ./.github/workflows/install-linux.sh | |
| - name: Verify AppImage launches (smoke test) | |
| run: | | |
| ./friture-*.AppImage --appimage-extract | |
| uv run python scripts/smoke_test.py ./squashfs-root/AppRun --no-splash | |
| - name: Capture Friture log | |
| if: always() | |
| shell: bash | |
| run: | | |
| uv run python - <<'PY' | |
| import os, shutil, platformdirs | |
| src = os.path.join(platformdirs.user_log_dir("Friture", ""), "friture.log.txt") | |
| dst = "friture-smoke.log" | |
| if os.path.exists(src): | |
| shutil.copy2(src, dst) | |
| else: | |
| with open(dst, "w") as f: | |
| f.write("log not found: " + src) | |
| PY | |
| - name: Upload AppImage smoke-test log | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-smoke-log-linux | |
| path: friture-smoke.log | |
| if-no-files-found: warn | |
| - name: Upload appImage | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-appImage | |
| path: | | |
| friture*.AppImage | |
| friture*.AppImage.zsync | |
| if-no-files-found: error | |
| build-macos: | |
| runs-on: macos-15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Python | |
| uses: actions/setup-python@v7 | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: "auto" | |
| - name: Install dependencies | |
| run: uv sync --frozen | |
| - name: Display Python version | |
| run: uv run python -c "import sys; print(sys.version)" | |
| - name: Build | |
| run: source ./.github/workflows/install-macos.sh | |
| - name: Verify app launches (smoke test) | |
| shell: bash | |
| run: uv run python scripts/smoke_test.py dist/friture.app/Contents/MacOS/friture --no-splash | |
| - name: Capture Friture log | |
| if: always() | |
| shell: bash | |
| run: | | |
| uv run python - <<'PY' | |
| import os, shutil, platformdirs | |
| src = os.path.join(platformdirs.user_log_dir("Friture", ""), "friture.log.txt") | |
| dst = "friture-smoke.log" | |
| if os.path.exists(src): | |
| shutil.copy2(src, dst) | |
| else: | |
| with open(dst, "w") as f: | |
| f.write("log not found: " + src) | |
| PY | |
| - name: Upload friture smoke-test log | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-smoke-log-macos | |
| path: friture-smoke.log | |
| if-no-files-found: warn | |
| - name: Upload dmg | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: friture-dmg | |
| path: friture*.dmg | |
| if-no-files-found: error | |
| release: | |
| name: Create release and upload artifacts | |
| runs-on: ubuntu-latest | |
| needs: [build-windows, build-linux, build-macos] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Download all workflow run artifacts | |
| uses: actions/download-artifact@v8 | |
| - name: Display structure of downloaded files | |
| run: ls -R | |
| - name: Release | |
| uses: softprops/action-gh-release@v3 | |
| if: startsWith(github.ref, 'refs/tags/') # Limit releases to pushes to tags | |
| with: | |
| draft: true | |
| prerelease: false | |
| fail_on_unmatched_files: true | |
| files: | | |
| **/friture*.msi | |
| **/friture*.msix | |
| **/friture*.dmg | |
| **/friture*.AppImage | |
| **/friture*.AppImage.zsync | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |