Binary build for Windows again (#706)

* build system updates
* updated github actions
* use newer upload artifact action
* don't crash app on insufficient/invalid cal data fixes #699
pull/707/head v0.6.4
Holger Müller 2024-06-25 11:57:32 +02:00 zatwierdzone przez GitHub
rodzic a2f9044e30
commit 9f0263bc33
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
4 zmienionych plików z 32 dodań i 23 usunięć

Wyświetl plik

@ -12,7 +12,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Install python - name: Install python
@ -28,21 +28,21 @@ jobs:
run: | run: |
python3.11 -m venv build python3.11 -m venv build
. build/bin/activate . build/bin/activate
python -m pip install pip==23.3.2 setuptools==69.0.3 python -m pip install pip==24.1 setuptools==70.1.0
pip install -r requirements.txt pip install -r requirements.txt
pip install PyInstaller==6.3.0 pip install PyInstaller==6.8.0
python3 -m pip install -U PyQt6-sip
python3 -m pip install -U PyQt6
- name: Build binary - name: Build binary
run: | run: |
. build/bin/activate . build/bin/activate
python setup.py -V python setup.py -V
pyinstaller --onefile \ pyinstaller --onefile \
-p src \ -p src \
--add-data "build/lib/python3.11/site-packages/PyQt6/sip.*.so:PyQt6/sip.so" \
--add-data "build/lib/python3.11/site-packages/PyQt6/Qt6:PyQt6/Qt6"
-n nanovna-saver \ -n nanovna-saver \
nanovna-saver.py nanovna-saver.py
- name: Archive production artifacts - name: Archive production artifacts
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: NanoVNASaver.linux_modern name: NanoVNASaver.linux_modern
path: dist/nanovna-saver path: dist/nanovna-saver

Wyświetl plik

@ -14,11 +14,11 @@ jobs:
arch: [x64, ] arch: [x64, ]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v5
with: with:
python-version: 3.12 python-version: 3.12
architecture: ${{ matrix.arch }} architecture: ${{ matrix.arch }}
@ -26,10 +26,10 @@ jobs:
run: | run: |
python3 -m venv venv python3 -m venv venv
.\venv\Scripts\activate .\venv\Scripts\activate
python3 -m pip install pip==23.3.2 python3 -m pip install pip==24.1
python3 -m pip install -U setuptools setuptools-scm python3 -m pip install -U setuptools setuptools-scm
python3 -m pip install -r requirements.txt python3 -m pip install -r requirements.txt
python3 -m pip install PyInstaller==6.3.0 python3 -m pip install PyInstaller==6.8.0
python3 -m pip install -U PyQt6-sip python3 -m pip install -U PyQt6-sip
python3 -m pip install -U PyQt6 python3 -m pip install -U PyQt6
- name: Build binary - name: Build binary
@ -38,7 +38,7 @@ jobs:
python3 setup.py -V python3 setup.py -V
pyinstaller --onefile --noconsole -i icon_48x48.ico -p src -n nanovna-saver.exe nanovna-saver.py pyinstaller --onefile --noconsole -i icon_48x48.ico -p src -n nanovna-saver.exe nanovna-saver.py
- name: Archive production artifacts - name: Archive production artifacts
uses: actions/upload-artifact@v1 uses: actions/upload-artifact@v4
with: with:
name: NanoVNASaver.${{ matrix.arch }} name: NanoVNASaver.${{ matrix.arch }}
path: dist/nanovna-saver.exe path: dist/nanovna-saver.exe

Wyświetl plik

@ -1,9 +1,9 @@
pyserial==3.5 pyserial==3.5
PyQt6==6.5.2 PyQt6==6.7.0
PyQt6-sip==13.6.0 PyQt6-sip==13.6.0
sip==6.8.1 sip==6.8.4
numpy==1.26.3 numpy==1.26.4
scipy==1.12.0 scipy==1.13.1
Cython==3.0.8 Cython==3.0.10
setuptools==69.0.3 setuptools==70.1.0
setuptools-scm==8.0.4 setuptools-scm==8.1.0

Wyświetl plik

@ -539,6 +539,13 @@ class CalibrationWindow(QtWidgets.QWidget):
) )
return return
if not self.app.calibration.isValid1Port():
self.app.showError(
"Not enough data to apply calibration."
" Please complete SOL calibration and try again."
)
return
cal_element.short_is_ideal = True cal_element.short_is_ideal = True
cal_element.open_is_ideal = True cal_element.open_is_ideal = True
cal_element.load_is_ideal = True cal_element.load_is_ideal = True
@ -633,18 +640,20 @@ class CalibrationWindow(QtWidgets.QWidget):
self.app.sweepSource, self.app.sweepSource,
) )
self.app.worker.signals.updated.emit() self.app.worker.signals.updated.emit()
except ValueError as e: except ValueError as e:
if logger.isEnabledFor(logging.DEBUG):
raise
# showError here hides the calibration window, # showError here hides the calibration window,
# so we need to pop up our own # so we need to pop up our own
QtWidgets.QMessageBox.warning(
self, "Error applying calibration", str(e)
)
self.calibration_status_label.setText( self.calibration_status_label.setText(
"Applying calibration failed." "Applying calibration failed."
) )
self.calibration_source_label.setText(self.app.calibration.source) self.calibration_source_label.setText(self.app.calibration.source)
self.app.showError(
f"{e}"
" Please complete SOL calibration and try again."
)
self.reset()
return
def loadCalibration(self): def loadCalibration(self):
filename, _ = QtWidgets.QFileDialog.getOpenFileName( filename, _ = QtWidgets.QFileDialog.getOpenFileName(