mirror of https://github.com/DJ2LS/FreeDATA.git
101 lines
2.9 KiB
YAML
101 lines
2.9 KiB
YAML
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: 22
|
|
|
|
- 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/release-downloader@v1.12
|
|
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/makensis-action@v4.1
|
|
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: false
|
|
files: ./FreeDATA-Installer.exe
|
|
tag_name: ${{ github.ref_name }}
|