From 9c0cafb11563d2fe13b7879355f702a56c7c8612 Mon Sep 17 00:00:00 2001 From: F2011 Date: Tue, 27 Jan 2026 10:49:27 +0100 Subject: [PATCH 1/8] Try macos action --- .github/workflows/release.yml | 59 +++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..b5be377 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,59 @@ +name: Release + +on: + push: + branches: [master] + tags: + - "v*" # Triggers on version tags like v1.0.0 + workflow_dispatch: + +jobs: + test: + name: Test + uses: Bzero/typstwriter/.github/workflows/ci.yml@master + + build-macos-dmg: + runs-on: macos-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.13" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pyinstaller + + - name: Build macOS app with PyInstaller + run: | + pyinstaller typstwriter/typstwriter.py --windowed --onefile --name typstwriter + + - name: Install create-dmg + run: brew install create-dmg + + - name: Create DMG + run: | + create-dmg \ + --volname "Typstwriter" \ + --window-pos 200 120 \ + --window-size 600 400 \ + --icon-size 100 \ + --icon "typstwriter.app" 150 185 \ + --app-drop-link 450 185 \ + "typstwriter.dmg" \ + "dist/typstwriter.app" + + - name: Create GitHub Release + id: create_release + uses: elgohr/Github-Release-Action@v5 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag: ${{ github.ref_name }} + title: Release ${{ github.ref_name }} + prerelease: false From 04384046043269ac21e312f6e413b2c38f264a6f Mon Sep 17 00:00:00 2001 From: F2011 Date: Tue, 27 Jan 2026 10:52:37 +0100 Subject: [PATCH 2/8] Make pipeline run on branch --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b5be377..2f3f924 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,9 +2,9 @@ name: Release on: push: - branches: [master] - tags: - - "v*" # Triggers on version tags like v1.0.0 + branches: [master, release-pipeline] + # tags: + # - "v*" workflow_dispatch: jobs: From 0c53696c072bfa9cb9878c7f08ef4c52ab586a09 Mon Sep 17 00:00:00 2001 From: F2011 Date: Tue, 27 Jan 2026 10:53:54 +0100 Subject: [PATCH 3/8] Make ci workflow reusable --- .github/workflows/ci.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ddf3a8c..715e144 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,6 @@ name: CI -on: [ push, pull_request ] +on: [push, pull_request, workflow_call] permissions: contents: read diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2f3f924..f0c0774 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,7 @@ on: jobs: test: name: Test - uses: Bzero/typstwriter/.github/workflows/ci.yml@master + uses: F2011/typstwriter/.github/workflows/ci.yml@release-pipeline build-macos-dmg: runs-on: macos-latest From ab2d19c02adc9915e3f77df52de2e8295f2e9833 Mon Sep 17 00:00:00 2001 From: F2011 Date: Tue, 27 Jan 2026 11:06:39 +0100 Subject: [PATCH 4/8] Create dmg release --- .github/workflows/release.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f0c0774..a452907 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,10 +9,11 @@ on: jobs: test: - name: Test + name: Run tests uses: F2011/typstwriter/.github/workflows/ci.yml@release-pipeline build-macos-dmg: + needs: test runs-on: macos-latest steps: @@ -49,11 +50,10 @@ jobs: "dist/typstwriter.app" - name: Create GitHub Release - id: create_release - uses: elgohr/Github-Release-Action@v5 - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: softprops/action-gh-release@v2 with: - tag: ${{ github.ref_name }} - title: Release ${{ github.ref_name }} + files: typstwriter.dmg + tag_name: ${{ github.ref_name }} + name: Release ${{ github.ref_name }} prerelease: false + token: ${{ secrets.GITHUB_TOKEN }} From 4cb255f25729da2d84fb1eaa398948291897e4b6 Mon Sep 17 00:00:00 2001 From: F2011 Date: Tue, 27 Jan 2026 11:11:42 +0100 Subject: [PATCH 5/8] Switch to master branch --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a452907..6af4de2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,7 +2,7 @@ name: Release on: push: - branches: [master, release-pipeline] + branches: [master] # tags: # - "v*" workflow_dispatch: @@ -10,7 +10,7 @@ on: jobs: test: name: Run tests - uses: F2011/typstwriter/.github/workflows/ci.yml@release-pipeline + uses: F2011/typstwriter/.github/workflows/ci.yml@master build-macos-dmg: needs: test From 1357794a578064af8ac87b33548ff01809e3ab39 Mon Sep 17 00:00:00 2001 From: F2011 Date: Tue, 27 Jan 2026 11:30:08 +0100 Subject: [PATCH 6/8] Add .app folder to release --- .github/workflows/release.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6af4de2..0e3936e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,7 +52,9 @@ jobs: - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: - files: typstwriter.dmg + files: | + typstwriter.dmg + dist/typstwriter.app/ tag_name: ${{ github.ref_name }} name: Release ${{ github.ref_name }} prerelease: false From 8a2c165e485ab02fa2a570e8ef6a1c5cd48524a5 Mon Sep 17 00:00:00 2001 From: F2011 Date: Tue, 27 Jan 2026 11:38:28 +0100 Subject: [PATCH 7/8] try with spec file --- .github/workflows/release.yml | 9 ++--- typstwriter.spec | 69 +++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 typstwriter.spec diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0e3936e..faa98bf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,9 +2,8 @@ name: Release on: push: - branches: [master] - # tags: - # - "v*" + tags: + - "v*" workflow_dispatch: jobs: @@ -28,11 +27,12 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip + pip install . pip install pyinstaller - name: Build macOS app with PyInstaller run: | - pyinstaller typstwriter/typstwriter.py --windowed --onefile --name typstwriter + pyinstaller typstwriter.spec - name: Install create-dmg run: brew install create-dmg @@ -54,7 +54,6 @@ jobs: with: files: | typstwriter.dmg - dist/typstwriter.app/ tag_name: ${{ github.ref_name }} name: Release ${{ github.ref_name }} prerelease: false diff --git a/typstwriter.spec b/typstwriter.spec new file mode 100644 index 0000000..f17bd6f --- /dev/null +++ b/typstwriter.spec @@ -0,0 +1,69 @@ +# -*- mode: python ; coding: utf-8 -*- + +a = Analysis( + ['typstwriter/typstwriter.py'], + pathex=[], + binaries=[], + datas=[ + ('typstwriter/icons', 'typstwriter/icons'), + ], + hiddenimports=[ + 'qtpy', + 'qtpy.QtCore', + 'qtpy.QtWidgets', + 'qtpy.QtGui', + 'PySide6', + 'PySide6.QtCore', + 'PySide6.QtWidgets', + 'PySide6.QtGui', + 'PySide6.QtPrintSupport', + 'typstwriter.logging', + 'typstwriter.arguments', + 'typstwriter.configuration', + 'typstwriter.globalstate', + 'typstwriter.mainwindow', + ], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + noarchive=False, + optimize=0, +) + +pyz = PYZ(a.pure) + +exe = EXE( + pyz, + a.scripts, + [], + exclude_binaries=True, + name='typstwriter', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + console=False, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, +) + +coll = COLLECT( + exe, + a.binaries, + a.datas, + strip=False, + upx=True, + upx_exclude=[], + name='typstwriter', +) + +app = BUNDLE( + coll, + name='typstwriter.app', + icon=None, + bundle_identifier='net.posteo.b0.typstwriter', +) \ No newline at end of file From 0734931bab052f94254448f533f03351909fbeb6 Mon Sep 17 00:00:00 2001 From: Leon Fertig <110890521+F2011@users.noreply.github.com> Date: Tue, 3 Feb 2026 08:51:19 +0100 Subject: [PATCH 8/8] Change reference repo from F2011 to Bzero --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index faa98bf..fa19cc6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ on: jobs: test: name: Run tests - uses: F2011/typstwriter/.github/workflows/ci.yml@master + uses: Bzero/typstwriter/.github/workflows/ci.yml@master build-macos-dmg: needs: test