FreeDATA/.github/workflows/build_nsis_bundle.yml

86 lines
2.5 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: 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/release-downloader@v1.11
with:
repository: "Hamlib/Hamlib"
fileName: " hamlib-w64-*.zip"
latest: true
extract: true
out-file-path: "freedata_server/lib/hamlib/"
- 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/hamlib-w64-4.5.5/bin/*.exe=lib/hamlib/hamlib-w64-4.5.5/bin/ \
--include-data-files=lib/hamlib/hamlib-w64-4.5.5/bin/*.dll=lib/hamlib/hamlib-w64-4.5.5/bin/ \
--include-data-files=config.ini.example=config.ini \
--standalone server.py \
--output-filename=freedata-server
- 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: true
files: ./FreeDATA-Installer.exe
tag_name: ${{ github.ref_name }}
name: 'FreeDATA-${{ github.ref_name }}'