diff --git a/.github/workflows/release_macos_app.yml b/.github/workflows/release_macos_app.yml new file mode 100644 index 0000000..ceb6d64 --- /dev/null +++ b/.github/workflows/release_macos_app.yml @@ -0,0 +1,43 @@ +name: Mac Release App + +on: + push: + tags: + - v* + workflow_dispatch: + +jobs: + release: + runs-on: macos-latest + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.11 + - name: Get Target Environment + id: targetenv + run: | + echo "arch=`uname -m`" >> "$GITHUB_ENV" + + - name: Install dependencies and pyinstall + run: | + python -m pip install pip==23.0.1 setuptools==67.6.0 + pip install -r requirements.txt + pip install PyInstaller==5.9.0 + + - name: Build binary + run: | + python setup.py -V + pyinstaller --onedir -p src -n NanoVNASaver nanovna-saver.py --window --clean -y -i icon_48x48.icns + tar -C dist -zcf ./dist/NanoVNASaver.app-${{ env.arch }}.tar.gz NanoVNASaver.app + echo "Created: NanoVNASaver.app-${{ env.arch }}.tar.gz" + + - name: Archive production artifacts + uses: actions/upload-artifact@v1 + with: + name: NanoVNASaver.app-${{ env.arch }}.tar.gz + path: dist/NanoVNASaver.app-${{ env.arch }}.tar.gz diff --git a/build-macos-app.sh b/build-macos-app.sh new file mode 100755 index 0000000..d0397b6 --- /dev/null +++ b/build-macos-app.sh @@ -0,0 +1,21 @@ +# Builds a NanoVNASaver.app on MacOS +# ensure you have pyqt >=6.4 installed (brew install pyqt) +# +export VENV_DIR=macbuildenv + +# setup build venv +python3 -m venv ${VENV_DIR} +. ./${VENV_DIR}/bin/activate + +# install required dependencies (pyqt libs must be installed on the system) +python3 -m pip install pip==23.0.1 setuptools==67.6.0 +pip install -r requirements.txt +pip install PyInstaller==5.9.0 + +python3 setup.py -V + +pyinstaller --onedir -p src -n NanoVNASaver nanovna-saver.py --window --clean -y -i icon_48x48.icns +tar -C dist -zcf ./dist/NanoVNASaver.app-`uname -m`.tar.gz NanoVNASaver.app + +deactivate +rm -rf ${VENV_DIR} \ No newline at end of file diff --git a/icon_48x48.icns b/icon_48x48.icns new file mode 100644 index 0000000..f43f792 Binary files /dev/null and b/icon_48x48.icns differ