- Design: „modern“ (hell, flach, wie Windows 11, normaler Windows-Rahmen) ist Standard; „win95“ bleibt unter Datei > Einstellungen wählbar (Einstellung „design“). - Export: Zeitraum von–bis (nach Aktivierungsdatum oder Abrechnungszeitraum des Anbieters), exportierte Positionen werden als abgerechnet gekennzeichnet (Betrag/Händler eingefroren) und per Fingerabdruck auch in späteren Dateien/Abrechnungen nicht noch einmal abgerechnet. - Datei > Abrechnung erledigt / wieder öffnen: erledigte Abrechnungen sind gegen Änderungen gesperrt. - DB-Schema v4 (Migration inkl. Fingerabdrücke für alte Positionen). - Linux-Build (python:3.12-bookworm) als zweiter Pipeline-Job mit Tests und Selbsttest; Release-Upload für beide Jobs über build/release_hochladen.sh. - Behoben: normaler Windows-Rahmen stürzte beim Start ab (Hauptrahmen.nativ fehlte). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
78 lines
2.6 KiB
YAML
78 lines
2.6 KiB
YAML
# Baut die Windows-Version (.exe, mit Windows-Python unter Wine) und die Linux-Version.
|
||
# - jeder Push / PR: Tests + Programmdateien als Build-Artefakte
|
||
# - Tag "v*" (z. B. v1.0.0): zusätzlich Gitea-Release mit .exe, .zip und Linux-.tar.gz
|
||
name: Build
|
||
|
||
on:
|
||
push:
|
||
branches: [main]
|
||
tags: ["v*"]
|
||
pull_request:
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
windows-exe:
|
||
# Label ggf. an euren Runner anpassen (Runner braucht Docker; Wine steckt im Container-Image).
|
||
runs-on: ubuntu-latest
|
||
timeout-minutes: 30 # normal ca. 5 Minuten – ein Hänger darf den Runner nicht stundenlang belegen
|
||
container:
|
||
image: tobix/pywine:3.12
|
||
env:
|
||
WINEPREFIX: /opt/wineprefix
|
||
steps:
|
||
- name: Werkzeuge für Checkout/Upload installieren
|
||
run: |
|
||
apt-get update -qq
|
||
apt-get install -y -qq --no-install-recommends git nodejs ca-certificates xdotool >/dev/null
|
||
|
||
- uses: actions/checkout@v4
|
||
|
||
- name: Tests + Build (.exe)
|
||
run: ./build/build_windows.sh
|
||
|
||
- name: Build-Artefakt hochladen
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: Provisionsmanager95
|
||
path: |
|
||
dist/Provisionsmanager95.exe
|
||
dist/Provisionsmanager95-*.zip
|
||
|
||
- name: Release erstellen / ergänzen
|
||
if: startsWith(github.ref, 'refs/tags/v')
|
||
env:
|
||
TOKEN: ${{ secrets.RELEASE_TOKEN || secrets.GITEA_TOKEN }}
|
||
API: ${{ github.server_url }}/api/v1/repos/${{ github.repository }}
|
||
TAG: ${{ github.ref_name }}
|
||
run: build/release_hochladen.sh dist/Provisionsmanager95.exe dist/Provisionsmanager95-$(tr -d '\r\n' < dist/VERSION).zip
|
||
|
||
linux:
|
||
runs-on: ubuntu-latest
|
||
timeout-minutes: 30
|
||
container:
|
||
image: python:3.12-bookworm
|
||
steps:
|
||
- name: Werkzeuge installieren
|
||
run: |
|
||
apt-get update -qq
|
||
apt-get install -y -qq --no-install-recommends git nodejs ca-certificates xvfb xauth fonts-dejavu-core >/dev/null
|
||
|
||
- uses: actions/checkout@v4
|
||
|
||
- name: Tests + Build (Linux)
|
||
run: ./build/build_linux.sh
|
||
|
||
- name: Build-Artefakt hochladen
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: Provisionsmanager95-Linux
|
||
path: dist/Provisionsmanager95-linux-*.tar.gz
|
||
|
||
- name: Release ergänzen
|
||
if: startsWith(github.ref, 'refs/tags/v')
|
||
env:
|
||
TOKEN: ${{ secrets.RELEASE_TOKEN || secrets.GITEA_TOKEN }}
|
||
API: ${{ github.server_url }}/api/v1/repos/${{ github.repository }}
|
||
TAG: ${{ github.ref_name }}
|
||
run: build/release_hochladen.sh dist/Provisionsmanager95-linux-x86_64-*.tar.gz
|