Add macOS workflow and spec

This commit is contained in:
Djuri Baars 2024-06-09 23:23:06 +02:00
parent 775ee5e904
commit 0568db48ec
3 changed files with 97 additions and 1 deletions

51
.github/workflows/build_macos.yaml vendored Normal file
View file

@ -0,0 +1,51 @@
name: Build macOS artifacts and make release
on: workflow_dispatch
jobs:
build-windows:
runs-on:
- ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download universal2 Python
run: |
curl -o python.pkg https://www.python.org/ftp/python/3.12.4/python-3.12.4-macos11.pkg
- name: Install Python
run: |
sudo installer -pkg python.pkg -target /
- name: Add Python to PATH
run: |
echo "/Library/Frameworks/Python.framework/Versions/3.12/bin" >> $GITHUB_PATH
- name: Verify Python installation
run: |
python3 --version
pip3 --version
- name: Install dependencies
run: |
pip3 install --upgrade pip
pip3 install pyinstaller
pip3 install -r requirements.txt
- name: Build with PyInstaller
run: |
pyinstaller BTClockOTA-universal.spec
- name: Get current block
id: getBlockHeight
run: echo "blockHeight=$(curl -s https://mempool.space/api/blocks/tip/height)" >> $GITHUB_OUTPUT
- name: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: macos-artifacts
path: dist/
- name: Create release
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.getBlockHeight.outputs.blockHeight }}
commit: main
name: release-${{ steps.getBlockHeight.outputs.blockHeight }}
artifacts: "dist/**"
allowUpdates: true
makeLatest: true

View file

@ -1,4 +1,4 @@
name: Build artifacts and make release
name: Build Windows artifacts and make release
on: workflow_dispatch

45
BTClockOTA-universal.spec Normal file
View file

@ -0,0 +1,45 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['app.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=['zeroconf._utils.ipaddress',
'zeroconf._handlers.answers', 'pyserial', 'wx'],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='BTClockOTA',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch="universal2",
codesign_identity=None,
entitlements_file=None,
icon=['update-icon.ico'],
)
app = BUNDLE(exe,
name='BTClockOTA.app',
icon='update-icon.icns',
bundle_identifier=None)