-
Notifications
You must be signed in to change notification settings - Fork 19
100 lines (83 loc) · 2.94 KB
/
build_nsis_bundle.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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 }}