Skip to content

chore(deps): bump platformdirs from 4.11.0 to 4.11.1 #642

chore(deps): bump platformdirs from 4.11.0 to 4.11.1

chore(deps): bump platformdirs from 4.11.0 to 4.11.1 #642

Workflow file for this run

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 }}