Updated resources #361
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: "Snapshot" | |
| on: | |
| push: | |
| branches: [ "master" ] | |
| paths-ignore: | |
| - 'OpenNumismat/resources/i18n/*' | |
| - 'icons/*' | |
| - 'OpenNumismat/resources/resources.qrc' | |
| concurrency: | |
| group: ${{ github.workflow }} | |
| cancel-in-progress: true | |
| jobs: | |
| title: | |
| name: Title | |
| runs-on: ubuntu-latest | |
| outputs: | |
| APPNAME: OpenNumismat | |
| VERSION: ${{ steps.bump.outputs.current-version }}.${{ steps.bump.outputs.current-release }} | |
| PACKAGENAME: OpenNumismat-${{ steps.bump.outputs.current-version }}.${{ steps.bump.outputs.current-release }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: '3.12' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install click==8.2 bump-my-version==0.32.1 | |
| - name: Get current version | |
| id: bump | |
| shell: bash | |
| run: | | |
| echo "current-version=$(bump-my-version show current_version)" >> $GITHUB_OUTPUT | |
| echo "current-release=$(bump-my-version show scm_info.distance_to_latest_tag)" >> $GITHUB_OUTPUT | |
| windows: | |
| needs: [title] | |
| name: Windows | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: '3.14' | |
| - name: install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements.txt | |
| python -m pip install click==8.2 bump-my-version==0.32.1 pyinstaller | |
| - name: Bump pre-release version | |
| run: | | |
| bump-my-version bump pre --no-commit --allow-dirty --verbose --serialize "{major}.{minor}.{patch}.{distance_to_latest_tag}" | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: Patch portable | |
| uses: ./.github/actions/replace-string-in-file | |
| with: | |
| file: OpenNumismat/version.py | |
| old-string: "Portable = False" | |
| new-string: "Portable = True" | |
| - name: build | |
| run: | | |
| SET PYTHONOPTIMIZE=1 | |
| pyinstaller open-numismat-portable.spec | |
| - name: Upload | |
| id: upload-portable | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.APPNAME }}-portable | |
| path: dist/${{ needs.title.outputs.APPNAME }}/${{ needs.title.outputs.APPNAME }}.exe | |
| if-no-files-found: error | |
| - name: Signing | |
| uses: signpath/github-action-submit-signing-request@v2 | |
| with: | |
| api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' | |
| organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1' | |
| project-slug: 'open-numismat' | |
| signing-policy-slug: 'test-signing' | |
| artifact-configuration-slug: 'test-zip' | |
| github-artifact-id: '${{steps.upload-portable.outputs.artifact-id}}' | |
| output-artifact-directory: dist/${{ needs.title.outputs.APPNAME }} | |
| wait-for-completion: true | |
| - name: package | |
| run: | | |
| cd dist | |
| 7z a -tzip -mx=9 -mfb=258 -mpass=15 -r ../${{ needs.title.outputs.PACKAGENAME }}.zip ${{ needs.title.outputs.APPNAME }} | |
| - name: Upload zip | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }}-portable-signed | |
| path: ${{ needs.title.outputs.PACKAGENAME }}.zip | |
| if-no-files-found: error | |
| innosetup: | |
| needs: [title] | |
| name: InnoSetup | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: '3.14' | |
| - name: install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements.txt | |
| python -m pip install click==8.2 bump-my-version==0.32.1 pyinstaller | |
| - name: Bump pre-release version | |
| run: | | |
| bump-my-version bump pre --no-commit --allow-dirty --verbose --serialize "{major}.{minor}.{patch}.{distance_to_latest_tag}" | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: build | |
| run: | | |
| SET PYTHONOPTIMIZE=1 | |
| pyinstaller open-numismat.spec | |
| - name: Upload | |
| id: upload-exe | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.APPNAME }}-exe | |
| path: dist/${{ needs.title.outputs.APPNAME }}/${{ needs.title.outputs.APPNAME }}.exe | |
| if-no-files-found: error | |
| - name: Signing | |
| uses: signpath/github-action-submit-signing-request@v2 | |
| with: | |
| api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' | |
| organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1' | |
| project-slug: 'open-numismat' | |
| signing-policy-slug: 'test-signing' | |
| artifact-configuration-slug: 'test-zip' | |
| github-artifact-id: '${{steps.upload-exe.outputs.artifact-id}}' | |
| output-artifact-directory: dist/${{ needs.title.outputs.APPNAME }} | |
| wait-for-completion: true | |
| - name: package | |
| run: | | |
| ISCC.exe tools/setup.iss | |
| - name: Upload InnoSetup package | |
| id: upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }} | |
| path: tools/${{ needs.title.outputs.PACKAGENAME }}.exe | |
| if-no-files-found: error | |
| nuitka: | |
| needs: [title] | |
| name: Nuitka | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: '3.12' | |
| - name: install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements.txt | |
| python -m pip install click==8.2 bump-my-version==0.32.1 nuitka | |
| - name: Bump pre-release version | |
| run: | | |
| bump-my-version bump pre --no-commit --allow-dirty --verbose --serialize "{major}.{minor}.{patch}.{distance_to_latest_tag}" | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: Patch portable | |
| uses: ./.github/actions/replace-string-in-file | |
| with: | |
| file: OpenNumismat/version.py | |
| old-string: "Portable = False" | |
| new-string: "Portable = True" | |
| - name: build | |
| run: >- | |
| python -m nuitka open-numismat.py | |
| --jobs=2 | |
| --assume-yes-for-downloads | |
| --msvc=latest | |
| --lto=yes | |
| --show-modules | |
| --standalone | |
| --enable-plugin=pyside6 | |
| --include-qt-plugins=sqldrivers,multimedia | |
| --module-parameter=numba-disable-jit=yes | |
| --windows-console-mode=disable | |
| --include-data-dir=OpenNumismat/templates=templates | |
| --include-data-dir=OpenNumismat/db=db | |
| --include-data-files=COPYING=COPYING | |
| --windows-icon-from-ico=icons/main.ico | |
| --windows-file-version=${{ needs.title.outputs.VERSION }} | |
| --output-filename=${{ needs.title.outputs.APPNAME }}.exe | |
| - name: Upload | |
| id: upload-nuitka-portable | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.APPNAME }}-nuitka-portable | |
| path: open-numismat.dist/${{ needs.title.outputs.APPNAME }}.exe | |
| if-no-files-found: error | |
| - name: Signing | |
| uses: signpath/github-action-submit-signing-request@v2 | |
| with: | |
| api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' | |
| organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1' | |
| project-slug: 'open-numismat' | |
| signing-policy-slug: 'test-signing' | |
| artifact-configuration-slug: 'test-zip' | |
| github-artifact-id: '${{steps.upload-nuitka-portable.outputs.artifact-id}}' | |
| output-artifact-directory: open-numismat.dist | |
| wait-for-completion: true | |
| - name: package | |
| run: | | |
| cd open-numismat.dist | |
| mkdir ${{ needs.title.outputs.APPNAME }} | |
| robocopy . ${{ needs.title.outputs.APPNAME }} /move /e /xd ${{ needs.title.outputs.APPNAME }} | |
| 7z a -tzip -mx=9 -mfb=258 -mpass=15 -r ../${{ needs.title.outputs.PACKAGENAME }}-nuitka.zip ${{ needs.title.outputs.APPNAME }} | |
| - name: upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }}-nuitka-portable-signed | |
| path: ${{ needs.title.outputs.PACKAGENAME }}-nuitka.zip | |
| if-no-files-found: error | |
| nuitka_innosetup: | |
| needs: [title] | |
| name: Nuitka InnoSetup | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: '3.12' | |
| - name: install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements.txt | |
| python -m pip install click==8.2 bump-my-version==0.32.1 nuitka | |
| - name: Bump pre-release version | |
| run: | | |
| bump-my-version bump pre --no-commit --allow-dirty --verbose --serialize "{major}.{minor}.{patch}.{distance_to_latest_tag}" | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: build | |
| run: >- | |
| python -m nuitka open-numismat.py | |
| --jobs=2 | |
| --assume-yes-for-downloads | |
| --msvc=latest | |
| --lto=yes | |
| --show-modules | |
| --standalone | |
| --enable-plugin=pyside6 | |
| --include-qt-plugins=sqldrivers,multimedia | |
| --module-parameter=numba-disable-jit=yes | |
| --windows-console-mode=disable | |
| --include-data-dir=OpenNumismat/templates=templates | |
| --include-data-dir=OpenNumismat/db=db | |
| --include-data-files=COPYING=COPYING | |
| --windows-icon-from-ico=icons/main.ico | |
| --windows-file-version=${{ needs.title.outputs.VERSION }} | |
| --output-filename=${{ needs.title.outputs.APPNAME }}.exe | |
| - name: Upload | |
| id: upload-nuitka-exe | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.APPNAME }}-nuitka-exe | |
| path: open-numismat.dist/${{ needs.title.outputs.APPNAME }}.exe | |
| if-no-files-found: error | |
| - name: Signing | |
| uses: signpath/github-action-submit-signing-request@v2 | |
| with: | |
| api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' | |
| organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1' | |
| project-slug: 'open-numismat' | |
| signing-policy-slug: 'test-signing' | |
| artifact-configuration-slug: 'test-zip' | |
| github-artifact-id: '${{steps.upload-nuitka-exe.outputs.artifact-id}}' | |
| output-artifact-directory: open-numismat.dist | |
| wait-for-completion: true | |
| - name: package | |
| run: | | |
| ISCC.exe tools/setup-nuitka.iss | |
| - name: Upload InnoSetup package | |
| id: upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }}-nuitka | |
| path: tools/${{ needs.title.outputs.PACKAGENAME }}-nuitka.exe | |
| if-no-files-found: error | |
| ubuntu: | |
| needs: [title] | |
| name: Ubuntu 22.04 | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install dpkg devscripts debhelper dh-python dh-virtualenv python3-venv | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: Patch version | |
| uses: ./.github/actions/replace-string-in-file | |
| with: | |
| file: OpenNumismat/version.py | |
| old-string: "Version = .*" | |
| new-string: >- | |
| Version = "${{ needs.title.outputs.VERSION }}" | |
| - name: Patch build | |
| uses: ./.github/actions/replace-string-in-file | |
| with: | |
| file: debian/changelog | |
| old-string: "open-numismat (.*) oneiric; urgency=low" | |
| new-string: "open-numismat (${{ needs.title.outputs.VERSION }}) unstable; urgency=low" | |
| - name: Build | |
| run: | | |
| debuild -b -us -uc | |
| mv ../open-numismat_${{ needs.title.outputs.VERSION }}_all.deb . | |
| - name: upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }}-deb | |
| path: open-numismat_${{ needs.title.outputs.VERSION }}_all.deb | |
| if-no-files-found: error | |
| ubuntu-24: | |
| needs: [title] | |
| name: Ubuntu 24.04 | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install dpkg devscripts debhelper dh-python dh-virtualenv python3-venv build-essential | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: Patch version | |
| uses: ./.github/actions/replace-string-in-file | |
| with: | |
| file: OpenNumismat/version.py | |
| old-string: "Version = .*" | |
| new-string: >- | |
| Version = "${{ needs.title.outputs.VERSION }}" | |
| - name: Patch build | |
| uses: ./.github/actions/replace-string-in-file | |
| with: | |
| file: debian/changelog | |
| old-string: "open-numismat (.*) oneiric; urgency=low" | |
| new-string: "open-numismat (${{ needs.title.outputs.VERSION }}) unstable; urgency=low" | |
| - name: Build | |
| run: | | |
| debuild -b -us -uc | |
| mv ../open-numismat_${{ needs.title.outputs.VERSION }}_all.deb ./open-numismat_${{ needs.title.outputs.VERSION }}_all_24.deb | |
| - name: upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }}-deb-24 | |
| path: open-numismat_${{ needs.title.outputs.VERSION }}_all_24.deb | |
| if-no-files-found: error | |
| ubuntu-26: | |
| needs: [title] | |
| name: Ubuntu 26.04 | |
| runs-on: ubuntu-26.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install dpkg devscripts debhelper dh-python dh-virtualenv python3-venv build-essential | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: Patch version | |
| uses: ./.github/actions/replace-string-in-file | |
| with: | |
| file: OpenNumismat/version.py | |
| old-string: "Version = .*" | |
| new-string: >- | |
| Version = "${{ needs.title.outputs.VERSION }}" | |
| - name: Patch build | |
| uses: ./.github/actions/replace-string-in-file | |
| with: | |
| file: debian/changelog | |
| old-string: "open-numismat (.*) oneiric; urgency=low" | |
| new-string: "open-numismat (${{ needs.title.outputs.VERSION }}) unstable; urgency=low" | |
| - name: Build | |
| run: | | |
| debuild -b -us -uc | |
| mv ../open-numismat_${{ needs.title.outputs.VERSION }}_all.deb ./open-numismat_${{ needs.title.outputs.VERSION }}_all_26.deb | |
| - name: upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }}-deb-26 | |
| path: open-numismat_${{ needs.title.outputs.VERSION }}_all_26.deb | |
| if-no-files-found: error | |
| macos: | |
| needs: [title] | |
| name: macOS | |
| runs-on: macos-15-intel | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: '3.13' | |
| - name: install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements.txt | |
| python -m pip install click==8.2 bump-my-version==0.32.1 pyinstaller | |
| - name: Bump pre-release version | |
| run: | | |
| bump-my-version bump pre --no-commit --allow-dirty --verbose --serialize "{major}.{minor}.{patch}.{distance_to_latest_tag}" | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: build | |
| run: | | |
| PYTHONOPTIMIZE=1 | |
| pyinstaller open-numismat.spec | |
| - name: package | |
| run: | | |
| cd dist | |
| mkdir vol | |
| mv OpenNumismat.app vol | |
| ln -s /Applications vol/Applications | |
| hdiutil create ${{ needs.title.outputs.PACKAGENAME }}-macos15.dmg -volname "${{ needs.title.outputs.PACKAGENAME }}" -srcfolder vol -fs HFSX -format UDZO -imagekey zlib-level=9 | |
| - name: upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }}-dmg | |
| path: dist/${{ needs.title.outputs.PACKAGENAME }}-macos15.dmg | |
| if-no-files-found: error | |
| macos-arm64: | |
| needs: [title] | |
| name: macOS arm64 | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: 'recursive' | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v7 | |
| with: | |
| python-version: '3.14' | |
| - name: install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements.txt | |
| python -m pip install click==8.2 bump-my-version==0.32.1 pyinstaller | |
| - name: Bump pre-release version | |
| run: | | |
| bump-my-version bump pre --no-commit --allow-dirty --verbose --serialize "{major}.{minor}.{patch}.{distance_to_latest_tag}" | |
| - name: Create private keys | |
| run: | | |
| touch OpenNumismat/private_keys.py | |
| echo "FINANCE_PROXY = '${{ secrets.FINANCE_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_PROXY = '${{ secrets.COLNECT_PROXY }}'" >> OpenNumismat/private_keys.py | |
| echo "COLNECT_KEY = '${{ secrets.COLNECT_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "NUMISTA_API_KEY = '${{ secrets.NUMISTA_API_KEY }}'" >> OpenNumismat/private_keys.py | |
| echo "MAPBOX_ACCESS_TOKEN = '${{ secrets.MAPBOX_ACCESS_TOKEN }}'" >> OpenNumismat/private_keys.py | |
| - name: build | |
| run: | | |
| PYTHONOPTIMIZE=1 | |
| pyinstaller open-numismat.spec | |
| - name: package | |
| run: | | |
| cd dist | |
| mkdir vol | |
| mv OpenNumismat.app vol | |
| ln -s /Applications vol/Applications | |
| hdiutil create ${{ needs.title.outputs.PACKAGENAME }}-macos15-arm64.dmg -volname "${{ needs.title.outputs.PACKAGENAME }}" -srcfolder vol -fs HFSX -format UDZO -imagekey zlib-level=9 | |
| - name: upload | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ needs.title.outputs.PACKAGENAME }}-dmg-arm64 | |
| path: dist/${{ needs.title.outputs.PACKAGENAME }}-macos15-arm64.dmg | |
| if-no-files-found: error | |
| prerelease: | |
| name: Create pre-release | |
| needs: [title, windows, innosetup, ubuntu, ubuntu-24, ubuntu-26, macos, macos-arm64, nuitka, nuitka_innosetup] | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: artifacts | |
| - name: Delete old release | |
| run: gh release delete latest --yes --cleanup-tag || echo "Not found" | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: release | |
| id: release | |
| uses: softprops/action-gh-release@v3 | |
| with: | |
| token: "${{ secrets.PAT }}" | |
| tag_name: "latest" | |
| prerelease: true | |
| name: "Development Build" | |
| generate_release_notes: true | |
| files: | | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}-portable-signed/${{ needs.title.outputs.PACKAGENAME }}.zip | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}/${{ needs.title.outputs.PACKAGENAME }}.exe | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}-nuitka-portable-signed/${{ needs.title.outputs.PACKAGENAME }}-nuitka.zip | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}-nuitka/${{ needs.title.outputs.PACKAGENAME }}-nuitka.exe | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}-deb/open-numismat_${{ needs.title.outputs.VERSION }}_all.deb | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}-deb-24/open-numismat_${{ needs.title.outputs.VERSION }}_all_24.deb | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}-deb-26/open-numismat_${{ needs.title.outputs.VERSION }}_all_26.deb | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}-dmg/${{ needs.title.outputs.PACKAGENAME }}-macos15.dmg | |
| artifacts/${{ needs.title.outputs.PACKAGENAME }}-dmg-arm64/${{ needs.title.outputs.PACKAGENAME }}-macos15-arm64.dmg |