Skip to content

Upgrade urllib3 dependencies #22

Upgrade urllib3 dependencies

Upgrade urllib3 dependencies #22

Workflow file for this run

name: "Release"
on:
push:
tags:
- '[0-9]+.*'
jobs:
title:
name: Title
runs-on: ubuntu-latest
outputs:
APPNAME: OpenNumismat
VERSION: ${{ steps.bump.outputs.current-version }}
PACKAGENAME: OpenNumismat-${{ steps.bump.outputs.current-version }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install 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
windows:
needs: [title]
name: Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
fetch-depth: 0
- uses: actions/setup-python@v5
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 pyinstaller
- name: Create private keys
run: |
touch 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@v4
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@v1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1'
project-slug: 'open-numismat'
signing-policy-slug: 'release-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
wait-for-completion-timeout-in-seconds: 3600
- name: package
run: |
cd dist
7z a -r ../${{ needs.title.outputs.PACKAGENAME }}.zip ${{ needs.title.outputs.APPNAME }}
- name: upload
uses: actions/upload-artifact@v4
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@v4
with:
submodules: 'recursive'
fetch-depth: 0
- uses: actions/setup-python@v5
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 pyinstaller
- name: Create private keys
run: |
touch 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@v4
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@v1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1'
project-slug: 'open-numismat'
signing-policy-slug: 'release-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
wait-for-completion-timeout-in-seconds: 3600
- name: package
run: |
ISCC.exe tools/setup.iss
- name: Upload InnoSetup package
id: upload
uses: actions/upload-artifact@v4
with:
name: ${{ needs.title.outputs.PACKAGENAME }}
path: tools/${{ needs.title.outputs.PACKAGENAME }}.exe
if-no-files-found: error
- name: Signing InnoSetup package
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1'
project-slug: 'open-numismat'
signing-policy-slug: 'release-signing'
artifact-configuration-slug: 'test-zip'
github-artifact-id: '${{steps.upload.outputs.artifact-id}}'
output-artifact-directory: .
wait-for-completion: true
wait-for-completion-timeout-in-seconds: 3600
- name: upload-signed
uses: actions/upload-artifact@v4
with:
name: ${{ needs.title.outputs.PACKAGENAME }}-signed
path: ${{ needs.title.outputs.PACKAGENAME }}.exe
if-no-files-found: error
nuitka:
needs: [title]
name: Nuitka
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
fetch-depth: 0
- uses: actions/setup-python@v5
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 nuitka
- name: Create private keys
run: |
touch 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@v4
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@v1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1'
project-slug: 'open-numismat'
signing-policy-slug: 'release-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
wait-for-completion-timeout-in-seconds: 3600
- 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 -r ../${{ needs.title.outputs.PACKAGENAME }}.zip ${{ needs.title.outputs.APPNAME }}
- name: upload
uses: actions/upload-artifact@v4
with:
name: ${{ needs.title.outputs.PACKAGENAME }}-nuitka-portable-signed
path: ${{ needs.title.outputs.PACKAGENAME }}.zip
if-no-files-found: error
nuitka_innosetup:
needs: [title]
name: Nuitka InnoSetup
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
fetch-depth: 0
- uses: actions/setup-python@v5
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 nuitka
- name: Create private keys
run: |
touch 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@v4
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@v1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1'
project-slug: 'open-numismat'
signing-policy-slug: 'release-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
wait-for-completion-timeout-in-seconds: 3600
- name: package
run: |
ISCC.exe tools/setup-nuitka.iss
- name: Upload InnoSetup package
id: upload
uses: actions/upload-artifact@v4
with:
name: ${{ needs.title.outputs.PACKAGENAME }}-nuitka
path: tools/${{ needs.title.outputs.PACKAGENAME }}.exe
if-no-files-found: error
- name: Signing InnoSetup package
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: '${{ secrets.SIGNPATH_API_TOKEN }}'
organization-id: '3b087850-3844-4d25-8407-cf81e731f8d1'
project-slug: 'open-numismat'
signing-policy-slug: 'release-signing'
artifact-configuration-slug: 'test-zip'
github-artifact-id: '${{steps.upload.outputs.artifact-id}}'
output-artifact-directory: .
wait-for-completion: true
wait-for-completion-timeout-in-seconds: 3600
- name: upload-signed
uses: actions/upload-artifact@v4
with:
name: ${{ needs.title.outputs.PACKAGENAME }}-nuitka-signed
path: ${{ needs.title.outputs.PACKAGENAME }}.exe
if-no-files-found: error
ubuntu:
needs: [title]
name: Ubuntu 22.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
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 "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: |
debuild -b -us -uc
mv ../open-numismat_${{ needs.title.outputs.VERSION }}_all.deb .
- name: upload
uses: actions/upload-artifact@v4
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@v4
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 "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: |
debuild -b -us -uc
mv ../open-numismat_${{ needs.title.outputs.VERSION }}_all.deb .
- name: upload
uses: actions/upload-artifact@v4
with:
name: ${{ needs.title.outputs.PACKAGENAME }}-deb-24
path: open-numismat_${{ needs.title.outputs.VERSION }}_all.deb
if-no-files-found: error
macos:
needs: [title]
name: macOS
runs-on: macos-13
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
fetch-depth: 0
- uses: actions/setup-python@v5
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 pyinstaller
- name: Create private keys
run: |
touch 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 }}-macos13.dmg -volname "${{ needs.title.outputs.PACKAGENAME }}" -srcfolder vol -fs HFSX -format UDZO -imagekey zlib-level=9
- name: upload
uses: actions/upload-artifact@v4
with:
name: ${{ needs.title.outputs.PACKAGENAME }}-dmg
path: dist/${{ needs.title.outputs.PACKAGENAME }}-macos13.dmg
if-no-files-found: error
macos-arm64:
needs: [title]
name: macOS arm64
runs-on: macos-14
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
fetch-depth: 0
- uses: actions/setup-python@v5
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 pyinstaller
- name: Create private keys
run: |
touch 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 }}-macos14-arm64.dmg -volname "${{ needs.title.outputs.PACKAGENAME }}" -srcfolder vol -fs HFSX -format UDZO -imagekey zlib-level=9
- name: upload
uses: actions/upload-artifact@v4
with:
name: ${{ needs.title.outputs.PACKAGENAME }}-dmg-arm64
path: dist/${{ needs.title.outputs.PACKAGENAME }}-macos14-arm64.dmg
if-no-files-found: error
release:
name: Create release
needs: [title, windows, innosetup, ubuntu, ubuntu-24, macos, macos-arm64, nuitka, nuitka_innosetup]
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: release
id: release
uses: actions/create-release@v1
with:
tag_name: ${{ github.ref }}
release_name: OpenNumismat ${{ github.ref }}
- name: upload-windows
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: artifacts/${{ needs.title.outputs.PACKAGENAME }}-portable-signed/${{ needs.title.outputs.PACKAGENAME }}.zip
asset_name: ${{ needs.title.outputs.PACKAGENAME }}.zip
asset_content_type: application/zip
- name: upload-innosetup
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: artifacts/${{ needs.title.outputs.PACKAGENAME }}-signed/${{ needs.title.outputs.PACKAGENAME }}.exe
asset_name: ${{ needs.title.outputs.PACKAGENAME }}.exe
asset_content_type: application/octet-stream
- name: upload-nuitka
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: artifacts/${{ needs.title.outputs.PACKAGENAME }}-nuitka-portable-signed/${{ needs.title.outputs.PACKAGENAME }}.zip
asset_name: ${{ needs.title.outputs.PACKAGENAME }}-nuitka.zip
asset_content_type: application/octet-stream
- name: upload-nuitka-innosetup
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: artifacts/${{ needs.title.outputs.PACKAGENAME }}-nuitka-signed/${{ needs.title.outputs.PACKAGENAME }}.exe
asset_name: ${{ needs.title.outputs.PACKAGENAME }}-nuitka.exe
asset_content_type: application/octet-stream
- name: upload-ubuntu
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: artifacts/${{ needs.title.outputs.PACKAGENAME }}-deb/open-numismat_${{ needs.title.outputs.VERSION }}_all.deb
asset_name: open-numismat_${{ needs.title.outputs.VERSION }}_all.deb
asset_content_type: application/octet-stream
- name: upload-ubuntu-24
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: artifacts/${{ needs.title.outputs.PACKAGENAME }}-deb-24/open-numismat_${{ needs.title.outputs.VERSION }}_all.deb
asset_name: open-numismat_${{ needs.title.outputs.VERSION }}_all_24.deb
asset_content_type: application/octet-stream
- name: upload-macos
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: artifacts/${{ needs.title.outputs.PACKAGENAME }}-dmg/${{ needs.title.outputs.PACKAGENAME }}-macos13.dmg
asset_name: ${{ needs.title.outputs.PACKAGENAME }}-macos13.dmg
asset_content_type: application/octet-stream
- name: upload-macos-arm64
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.release.outputs.upload_url }}
asset_path: artifacts/${{ needs.title.outputs.PACKAGENAME }}-dmg-arm64/${{ needs.title.outputs.PACKAGENAME }}-macos14-arm64.dmg
asset_name: ${{ needs.title.outputs.PACKAGENAME }}-macos14-arm64.dmg
asset_content_type: application/octet-stream