another folder renaming #30
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 APPIMAGE Installer | |
on: [push] | |
jobs: | |
build-and-release: | |
runs-on: ubuntu-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: Electron Builder | |
working-directory: freedata_gui | |
run: | | |
npm i | |
npm run build | |
- name: LIST ALL FILES | |
run: ls -R | |
- name: Install Linux dependencies | |
run: | | |
sudo apt install -y portaudio19-dev libhamlib-dev libhamlib-utils build-essential cmake python3-libhamlib2 patchelf desktop-file-utils | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
- 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-files=lib/codec2/*=lib/codec2/ --include-data-files=config.ini.example=config.ini --standalone server.py --output-filename=freedata-server | |
- name: Prepare AppImage folder | |
run: | | |
mkdir -p $HOME/freedata-appimage | |
mkdir -p $HOME/freedata-appimage/gui | |
mkdir -p $HOME/freedata-appimage/server | |
- name: Copy GUI | |
run: | | |
cp -r gui/release/linux-unpacked/* $HOME/freedata-appimage/gui | |
- name: Copy server | |
run: | | |
cp -r modem/server.dist/* $HOME/freedata-appimage/server | |
- name: Copy Icon | |
run: | | |
cp gui/build/icon.png $HOME/freedata-appimage/icon.png | |
- name: Create Desktop shortcut | |
run: | | |
echo ' | |
# Create desktop file | |
echo "[Desktop Entry] | |
Type=Application | |
Name=FreeDATA | |
Icon=icon | |
Exec=AppRun | |
Categories=Utility ' > $HOME/freedata-appimage/FreeDATA.desktop | |
- name: Create AppImage build script | |
run: | | |
echo '#!/bin/bash | |
# Navigate to the AppDir root; this ensures relative paths work as expected | |
cd "$(dirname "$(readlink -f "${0}")")" | |
# check if config exists in ~/.config/FreeDATA/config.ini else create it | |
SERVER_CONFIG_FILE=~/.config/FreeDATA/config.ini | |
if test -f "$SERVER_CONFIG_FILE"; then | |
echo "$SERVER_CONFIG_FILE exists." | |
else | |
echo "$SERVER_CONFIG_FILE does not exist. Copying the default one" | |
mkdir ~/.config/FreeDATA | |
cp server.dist/config.ini $SERVER_CONFIG_FILE | |
fi | |
export FREEDATA_CONFIG=$SERVER_CONFIG_FILE | |
# Launch the main application executable from the linux-unpacked directory | |
./linux-unpacked/freedata | |
' > $HOME/freedata-appimage/AppRun | |
chmod +x $HOME/freedata-appimage/AppRun | |
- name: Download AppImage | |
run: | | |
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool-x86_64.AppImage | |
chmod +x appimagetool-x86_64.AppImage | |
- name: Execute AppImage | |
run: | | |
./appimagetool-x86_64.AppImage $HOME/freedata-appimage/ | |
- name: LIST ALL FILES | |
run: ls -R | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'FreeDATA-x86_64.AppImage' | |
path: ./$HOME/FreeDATA-x86_64.AppImage | |
- name: Upload Installer to Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/v') | |
with: | |
draft: true | |
files: ./$HOME/FreeDATA-x86_64.AppImage | |
tag_name: ${{ github.ref_name }} | |
name: 'FreeDATA-x86_64.AppImage' |