mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
Merge branch 'develop' of github.com:DJ2LS/FreeDATA into develop
This commit is contained in:
commit
bd18d85722
187 changed files with 193 additions and 181 deletions
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
|
@ -11,7 +11,7 @@ updates:
|
||||||
|
|
||||||
# Maintain dependencies for npm
|
# Maintain dependencies for npm
|
||||||
- package-ecosystem: "npm"
|
- package-ecosystem: "npm"
|
||||||
directory: "/freedata-gui"
|
directory: "/freedata_gui"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "monthly"
|
interval: "monthly"
|
||||||
target-branch: "develop"
|
target-branch: "develop"
|
||||||
|
|
15
.github/workflows/build_appimage_bundle.yml
vendored
15
.github/workflows/build_appimage_bundle.yml
vendored
|
@ -14,8 +14,13 @@ jobs:
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
|
|
||||||
|
- name: Install Node.js, NPM and Yarn
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
- name: Electron Builder
|
- name: Electron Builder
|
||||||
working-directory: freedata-gui
|
working-directory: freedata_gui
|
||||||
run: |
|
run: |
|
||||||
npm i
|
npm i
|
||||||
npm run build
|
npm run build
|
||||||
|
@ -33,7 +38,7 @@ jobs:
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
|
||||||
- name: Build binaries
|
- name: Build binaries
|
||||||
working-directory: freedata-server
|
working-directory: freedata_server
|
||||||
run: |
|
run: |
|
||||||
python3 -m nuitka --remove-output --assume-yes-for-downloads --follow-imports --include-data-dir=lib=lib --include-data-files=lib/codec2/*=lib/codec2/ --include-data-files=config.ini.example=config.ini --standalone server.py --output-filename=freedata-server
|
python3 -m nuitka --remove-output --assume-yes-for-downloads --follow-imports --include-data-dir=lib=lib --include-data-files=lib/codec2/*=lib/codec2/ --include-data-files=config.ini.example=config.ini --standalone server.py --output-filename=freedata-server
|
||||||
|
|
||||||
|
@ -46,16 +51,16 @@ jobs:
|
||||||
|
|
||||||
- name: Copy GUI
|
- name: Copy GUI
|
||||||
run: |
|
run: |
|
||||||
cp -r gui/release/linux-unpacked/* $HOME/freedata-appimage/gui
|
cp -r freedata_gui/release/linux-unpacked/* $HOME/freedata-appimage/gui
|
||||||
|
|
||||||
|
|
||||||
- name: Copy server
|
- name: Copy server
|
||||||
run: |
|
run: |
|
||||||
cp -r modem/server.dist/* $HOME/freedata-appimage/server
|
cp -r freedata_server/server.dist/* $HOME/freedata-appimage/server
|
||||||
|
|
||||||
- name: Copy Icon
|
- name: Copy Icon
|
||||||
run: |
|
run: |
|
||||||
cp gui/build/icon.png $HOME/freedata-appimage/icon.png
|
cp freedata_gui/build/icon.png $HOME/freedata-appimage/icon.png
|
||||||
|
|
||||||
- name: Create Desktop shortcut
|
- name: Create Desktop shortcut
|
||||||
run: |
|
run: |
|
||||||
|
|
37
.github/workflows/build_gui.yml
vendored
37
.github/workflows/build_gui.yml
vendored
|
@ -1,37 +0,0 @@
|
||||||
name: build_gui
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build_i686_x64_release:
|
|
||||||
name: Build FreeDATA GUI
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os: [ubuntu-20.04, macos-latest, windows-latest]
|
|
||||||
include:
|
|
||||||
- os: ubuntu-20.04
|
|
||||||
electron_parameters: "-p always"
|
|
||||||
|
|
||||||
- os: macos-latest
|
|
||||||
electron_parameters: "-p always"
|
|
||||||
|
|
||||||
- os: windows-latest
|
|
||||||
electron_parameters: "-p always --x64 --ia32"
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code for ${{ matrix.platform.name }}
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: DJ2LS/FreeDATA
|
|
||||||
- name: Electron Builder
|
|
||||||
env: # Setting environment variables for the entire job
|
|
||||||
GH_TOKEN: ${{ secrets.github_token }}
|
|
||||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
|
||||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
|
||||||
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
|
||||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
|
||||||
working-directory: freedata-gui
|
|
||||||
run: |
|
|
||||||
npm i
|
|
||||||
npm run release
|
|
6
.github/workflows/build_nsis_bundle.yml
vendored
6
.github/workflows/build_nsis_bundle.yml
vendored
|
@ -15,7 +15,7 @@ jobs:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
|
|
||||||
- name: Electron Builder
|
- name: Electron Builder
|
||||||
working-directory: freedata-gui
|
working-directory: freedata_gui
|
||||||
run: |
|
run: |
|
||||||
npm i
|
npm i
|
||||||
npm run build
|
npm run build
|
||||||
|
@ -34,10 +34,10 @@ jobs:
|
||||||
fileName: " hamlib-w64-*.zip"
|
fileName: " hamlib-w64-*.zip"
|
||||||
latest: true
|
latest: true
|
||||||
extract: true
|
extract: true
|
||||||
out-file-path: "freedata-server/lib/hamlib/"
|
out-file-path: "freedata_server/lib/hamlib/"
|
||||||
|
|
||||||
- name: Build binaries
|
- name: Build binaries
|
||||||
working-directory: freedata-server
|
working-directory: freedata_server
|
||||||
run: |
|
run: |
|
||||||
python3 -m nuitka --remove-output --assume-yes-for-downloads --follow-imports --include-data-dir=lib=lib --include-data-files=lib/codec2/*=lib/codec2/ --include-data-files=config.ini.example=config.ini --standalone server.py --output-filename=freedata-server
|
python3 -m nuitka --remove-output --assume-yes-for-downloads --follow-imports --include-data-dir=lib=lib --include-data-files=lib/codec2/*=lib/codec2/ --include-data-files=config.ini.example=config.ini --standalone server.py --output-filename=freedata-server
|
||||||
|
|
||||||
|
|
28
.github/workflows/build_server.yml
vendored
28
.github/workflows/build_server.yml
vendored
|
@ -8,22 +8,22 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-20.04, macos-latest, windows-latest]
|
os: [ubuntu-20.04, windows-latest] # removed macos-latest as it's broken for now
|
||||||
include:
|
include:
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
zip_name: freedata-server_ubuntu
|
zip_name: freedata-server_ubuntu
|
||||||
generator: Unix Makefiles
|
generator: Unix Makefiles
|
||||||
modem_binary_name: freedata-server
|
modem_binary_name: freedata_server
|
||||||
|
|
||||||
- os: macos-latest
|
- os: macos-latest
|
||||||
zip_name: freedata-server_macos
|
zip_name: freedata-server_macos
|
||||||
generator: Unix Makefiles
|
generator: Unix Makefiles
|
||||||
modem_binary_name: freedata-server
|
modem_binary_name: freedata_server
|
||||||
|
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
zip_name: freedata-server_windows
|
zip_name: freedata-server_windows
|
||||||
generator: Visual Studio 16 2019
|
generator: Visual Studio 16 2019
|
||||||
modem_binary_name: freedata-server.exe
|
modem_binary_name: freedata_server.exe
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code for ${{ matrix.platform.name }}
|
- name: Checkout code for ${{ matrix.platform.name }}
|
||||||
|
@ -62,26 +62,26 @@ jobs:
|
||||||
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
|
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
|
||||||
|
|
||||||
- name: Build binaries
|
- name: Build binaries
|
||||||
working-directory: freedata-server
|
working-directory: freedata_server
|
||||||
run: |
|
run: |
|
||||||
python3 -m nuitka --remove-output --assume-yes-for-downloads --follow-imports --include-data-dir=lib=lib --include-data-files=lib/codec2/*=lib/codec2/ --include-data-files=config.ini.example=config.ini --standalone server.py --output-filename=freedata-server
|
python3 -m nuitka --remove-output --assume-yes-for-downloads --follow-imports --include-data-dir=lib=lib --include-data-files=lib/codec2/*=lib/codec2/ --include-data-files=config.ini.example=config.ini --standalone server.py --output-filename=freedata-server
|
||||||
|
|
||||||
#- name: Download Portaudio binaries Linux macOS
|
#- name: Download Portaudio binaries Linux macOS
|
||||||
# if: ${{!startsWith(matrix.os, 'windows')}}
|
# if: ${{!startsWith(matrix.os, 'windows')}}
|
||||||
# working-directory: freedata-server
|
# working-directory: freedata_server
|
||||||
# run: |
|
# run: |
|
||||||
# if ! test -d "server.dist/freedata-server/_sounddevice_data"; then
|
# if ! test -d "server.dist/freedata_server/_sounddevice_data"; then
|
||||||
# git clone https://github.com/spatialaudio/portaudio-binaries dist/freedata-server/_sounddevice_data/portaudio-binaries
|
# git clone https://github.com/spatialaudio/portaudio-binaries dist/freedata_server/_sounddevice_data/portaudio-binaries
|
||||||
# fi
|
# fi
|
||||||
|
|
||||||
#- name: Download Portaudio binaries Windows
|
#- name: Download Portaudio binaries Windows
|
||||||
# if: ${{startsWith(matrix.os, 'windows')}}
|
# if: ${{startsWith(matrix.os, 'windows')}}
|
||||||
# working-directory: freedata-server
|
# working-directory: freedata_server
|
||||||
# run: |
|
# run: |
|
||||||
# if(Test-Path -Path "server.dist/freedata-server/_sounddevice_data"){
|
# if(Test-Path -Path "server.dist/freedata_server/_sounddevice_data"){
|
||||||
# echo "sounddevice folder already exists"
|
# echo "sounddevice folder already exists"
|
||||||
# } else {
|
# } else {
|
||||||
# git clone https://github.com/spatialaudio/portaudio-binaries dist/freedata-server/_sounddevice_data/portaudio-binaries
|
# git clone https://github.com/spatialaudio/portaudio-binaries dist/freedata_server/_sounddevice_data/portaudio-binaries
|
||||||
# }
|
# }
|
||||||
|
|
||||||
- name: LIST ALL FILES
|
- name: LIST ALL FILES
|
||||||
|
@ -99,7 +99,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
type: 'zip'
|
type: 'zip'
|
||||||
filename: '${{ matrix.zip_name }}.zip'
|
filename: '${{ matrix.zip_name }}.zip'
|
||||||
directory: ./freedata-server/server.dist
|
directory: ./freedata_server/server.dist
|
||||||
path: .
|
path: .
|
||||||
# exclusions: '*.git* /*node_modules/* .editorconfig'
|
# exclusions: '*.git* /*node_modules/* .editorconfig'
|
||||||
|
|
||||||
|
@ -110,14 +110,14 @@ jobs:
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: '${{ matrix.zip_name }}'
|
name: '${{ matrix.zip_name }}'
|
||||||
path: ./freedata-server/server.dist/${{ matrix.zip_name }}.zip
|
path: ./freedata_server/server.dist/${{ matrix.zip_name }}.zip
|
||||||
|
|
||||||
- name: Release Modem
|
- name: Release Modem
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
with:
|
with:
|
||||||
draft: true
|
draft: true
|
||||||
files: ./freedata-server/server.dist/${{ matrix.zip_name }}.zip
|
files: ./freedata_server/server.dist/${{ matrix.zip_name }}.zip
|
||||||
|
|
||||||
- name: LIST ALL FILES
|
- name: LIST ALL FILES
|
||||||
run: ls -R
|
run: ls -R
|
||||||
|
|
4
.github/workflows/gui_tests.yml
vendored
4
.github/workflows/gui_tests.yml
vendored
|
@ -28,11 +28,11 @@ jobs:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
working-directory: freedata-gui
|
working-directory: freedata_gui
|
||||||
run: |
|
run: |
|
||||||
npm i
|
npm i
|
||||||
|
|
||||||
- name: GUI Test
|
- name: GUI Test
|
||||||
working-directory: freedata-gui
|
working-directory: freedata_gui
|
||||||
run: |
|
run: |
|
||||||
npm run test
|
npm run test
|
7
.github/workflows/pip_package.yml
vendored
7
.github/workflows/pip_package.yml
vendored
|
@ -1,10 +1,5 @@
|
||||||
name: Deploy Python Package
|
name: Deploy Python Package
|
||||||
on:
|
on: [push]
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- '*'
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
|
|
16
.gitignore
vendored
16
.gitignore
vendored
|
@ -1,5 +1,5 @@
|
||||||
# possible installation of codec2 within freedata-server
|
# possible installation of codec2 within freedata_server
|
||||||
freedata-server/codec2
|
freedata_server/codec2
|
||||||
|
|
||||||
# temporary test artifacts
|
# temporary test artifacts
|
||||||
**/build
|
**/build
|
||||||
|
@ -24,12 +24,12 @@ coverage.sh
|
||||||
coverage.xml
|
coverage.xml
|
||||||
|
|
||||||
#ignore node_modules
|
#ignore node_modules
|
||||||
/freedata-gui/node_modules/
|
/freedata_gui/node_modules/
|
||||||
|
|
||||||
#Ignore freedata-gui build items
|
#Ignore freedata_gui build items
|
||||||
/freedata-gui/dist
|
/freedata_gui/dist
|
||||||
/freedata-gui/release
|
/freedata_gui/release
|
||||||
/freedata-gui/dist-electron
|
/freedata_gui/dist-electron
|
||||||
|
|
||||||
#Ignore GUI config
|
#Ignore GUI config
|
||||||
/freedata-gui/config/config.json
|
/freedata_gui/config/config.json
|
|
@ -2,4 +2,4 @@
|
||||||
build
|
build
|
||||||
coverage
|
coverage
|
||||||
assets
|
assets
|
||||||
freedata-gui/src/waterfall
|
freedata_gui/src/waterfall
|
|
@ -53,7 +53,7 @@ Section "FreeData Server" SEC01
|
||||||
|
|
||||||
doneBackup:
|
doneBackup:
|
||||||
; Add your application files here
|
; Add your application files here
|
||||||
File /r "modem\server.dist\*"
|
File /r "freedata-server\server.dist\*"
|
||||||
|
|
||||||
; Restore the original "config.ini" if it was backed up
|
; Restore the original "config.ini" if it was backed up
|
||||||
IfFileExists $INSTDIR\freedata-server\config.ini.bak restoreConfig
|
IfFileExists $INSTDIR\freedata-server\config.ini.bak restoreConfig
|
||||||
|
@ -93,7 +93,7 @@ Section "FreeData x64 GUI" SEC02
|
||||||
SetOutPath $INSTDIR\freedata-gui
|
SetOutPath $INSTDIR\freedata-gui
|
||||||
|
|
||||||
; Add GUI files here
|
; Add GUI files here
|
||||||
File /r "gui\release\win-unpacked\*"
|
File /r "freedata-gui\release\win-unpacked\*"
|
||||||
|
|
||||||
; Create a shortcut on the desktop for the GUI
|
; Create a shortcut on the desktop for the GUI
|
||||||
CreateShortCut "$DESKTOP\FreeDATA GUI.lnk" "$INSTDIR\freedata-gui\freedata.exe"
|
CreateShortCut "$DESKTOP\FreeDATA GUI.lnk" "$INSTDIR\freedata-gui\freedata.exe"
|
||||||
|
|
16
freedata_gui/build/entitlements.plist
Normal file
16
freedata_gui/build/entitlements.plist
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.cs.allow-jit</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.disable-library-validation</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.cs.disable-executable-page-protection</key>
|
||||||
|
<true/>
|
||||||
|
<key>com.apple.security.automation.apple-events</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
Before Width: | Height: | Size: 590 KiB After Width: | Height: | Size: 590 KiB |
24
freedata_gui/build/notarize_macos.js
Normal file
24
freedata_gui/build/notarize_macos.js
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
const { notarize } = require('@electron/notarize');
|
||||||
|
|
||||||
|
async function notarizing(context) {
|
||||||
|
const { electronPlatformName, appOutDir } = context;
|
||||||
|
console.log("Notarization...")
|
||||||
|
if (electronPlatformName !== 'darwin') {
|
||||||
|
console.log("--> Platform:" + electronPlatformName + " detected: not a APPLE system. Skipping")
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("--> Platform:" + electronPlatformName + " detected: Trying to notarize app.")
|
||||||
|
const appName = context.packager.appInfo.productFilename;
|
||||||
|
|
||||||
|
return await notarize({
|
||||||
|
tool: 'notarytool',
|
||||||
|
appBundleId: 'app.freedata',
|
||||||
|
appPath: `${appOutDir}/${appName}.app`,
|
||||||
|
appleId: process.env.APPLE_ID,
|
||||||
|
appleIdPassword: process.env.APPLE_ID_PASSWORD,
|
||||||
|
teamId: process.env.APPLE_TEAM_ID
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.default = notarizing;
|
|
@ -2,7 +2,7 @@
|
||||||
"name": "FreeDATA",
|
"name": "FreeDATA",
|
||||||
"description": "FreeDATA Client application for connecting to FreeDATA server",
|
"description": "FreeDATA Client application for connecting to FreeDATA server",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.15.2-alpha",
|
"version": "0.15.4-alpha",
|
||||||
"main": "dist-electron/main/index.js",
|
"main": "dist-electron/main/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "vite",
|
"start": "vite",
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
"eslint-plugin-promise": "6.1.1",
|
"eslint-plugin-promise": "6.1.1",
|
||||||
"eslint-plugin-vue": "9.22.0",
|
"eslint-plugin-vue": "9.22.0",
|
||||||
"typescript": "5.3.3",
|
"typescript": "5.3.3",
|
||||||
"vite": "5.1.3",
|
"vite": "5.1.7",
|
||||||
"vite-plugin-electron": "0.28.2",
|
"vite-plugin-electron": "0.28.2",
|
||||||
"vite-plugin-electron-renderer": "0.14.5",
|
"vite-plugin-electron-renderer": "0.14.5",
|
||||||
"vitest": "1.4.0",
|
"vitest": "1.4.0",
|
BIN
freedata_gui/public/icon_cube_border.png
Normal file
BIN
freedata_gui/public/icon_cube_border.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 590 KiB |
|
@ -108,7 +108,7 @@ export function getAppDataPath() {
|
||||||
// Check if running in GitHub Actions
|
// Check if running in GitHub Actions
|
||||||
const isGitHubActions = process.env.GITHUB_ACTIONS === "true";
|
const isGitHubActions = process.env.GITHUB_ACTIONS === "true";
|
||||||
if (isGitHubActions) {
|
if (isGitHubActions) {
|
||||||
return "/home/runner/work/FreeDATA/FreeDATA/gui/config";
|
return "/home/runner/work/FreeDATA/FreeDATA/freedata_gui/config";
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (platform) {
|
switch (platform) {
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue