script cleanup #783
This file contains 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: Build and Release NSIS Installer | |
on: [push] | |
jobs: | |
build-and-release: | |
runs-on: windows-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Install Node.js, NPM and Yarn | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Vue Builder | |
working-directory: freedata_gui | |
run: | | |
npm i | |
npm run build | |
- name: LIST ALL FILES | |
run: ls -R | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- uses: robinraju/[email protected] | |
with: | |
repository: "Hamlib/Hamlib" | |
fileName: "hamlib-w64-*.zip" | |
# latest: true | |
extract: true | |
tag: '4.5.5' | |
out-file-path: "freedata_server/lib/hamlib" | |
- name: Move Hamlib Files | |
working-directory: freedata_server | |
run: | | |
# Find the downloaded folder (handle version numbers dynamically) | |
$HAMLIB_DIR = Get-ChildItem -Directory -Path lib/hamlib -Filter "hamlib-w64*" | Select-Object -First 1 | |
# Move all contents from the found directory to the target directory | |
Move-Item "$($HAMLIB_DIR.FullName)\*" "lib/hamlib" -Force | |
# Remove the now empty versioned directory | |
Remove-Item "$($HAMLIB_DIR.FullName)" -Recurse -Force | |
shell: pwsh | |
- name: Build binaries | |
working-directory: freedata_server | |
run: | | |
python3 -m nuitka ` | |
--remove-output ` | |
--assume-yes-for-downloads ` | |
--follow-imports ` | |
--include-data-dir=lib=lib ` | |
--include-data-dir=../freedata_gui/dist=gui ` | |
--include-data-files=lib/codec2/*=lib/codec2/ ` | |
--include-data-files=lib/hamlib/bin/*.exe=lib/hamlib/bin/ ` | |
--include-data-files=lib/hamlib/bin/*.dll=lib/hamlib/bin/ ` | |
--include-data-files=config.ini.example=config.ini ` | |
--standalone server.py ` | |
--output-filename=freedata-server | |
shell: pwsh | |
- name: LIST ALL FILES | |
run: ls -R | |
- name: Create installer | |
uses: joncloud/[email protected] | |
with: | |
script-file: "freedata-nsis-config.nsi" | |
arguments: '/V3' | |
- name: LIST ALL FILES | |
working-directory: freedata_server/server.dist | |
run: ls -R | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'FreeDATA-Installer' | |
path: ./FreeDATA-Installer.exe | |
- name: Upload Installer to Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/v') | |
with: | |
draft: true | |
files: ./FreeDATA-Installer.exe | |
tag_name: ${{ github.ref_name }} |