Skip to content

Commit

Permalink
Linux Installer.[CPP-325] (#233)
Browse files Browse the repository at this point in the history
Creates a temporary staging folder within ./target/installer which is later wrapped into the .deb.
The app is placed in /opt/swift-navigation-console/console, not sure if we should keep it in /opt but this is what FBS was doing.
The .desktop file gets placed in /usr/share/applications
The icons are stored in /usr/share/icons/hicolor/<respective sizes>
The final installer is moved into ./installers/Linux/ to match the Windows installer final location.
  • Loading branch information
john-michaelburke authored Nov 13, 2021
1 parent b8c32d2 commit fdee18a
Show file tree
Hide file tree
Showing 10 changed files with 38 additions and 3 deletions.
10 changes: 7 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -288,9 +288,13 @@ jobs:
shell: bash
run: |
cargo make dist-to-installer
INSTALLER_ARCHIVE=$(find installers/Windows -maxdepth 1 -iname "*.exe")
if [ "$RUNNER_OS" == "Linux" ]; then
INSTALLER_ARCHIVE=$(find installers/Linux -maxdepth 1 -iname "*.deb")
elif [ "$RUNNER_OS" == "Windows" ]; then
INSTALLER_ARCHIVE=$(find installers/Windows -maxdepth 1 -iname "*.exe")
fi
echo "INSTALLER_ARCHIVE=$INSTALLER_ARCHIVE" >>$GITHUB_ENV
if: matrix.os == 'windows-2019' && github.event_name == 'push' && contains(github.ref, 'refs/tags')
if: matrix.os != 'macos-10.15' && github.event_name == 'push' && contains(github.ref, 'refs/tags')

- name: Pull Git LFS objects
run: git lfs pull
Expand Down Expand Up @@ -326,7 +330,7 @@ jobs:
name: ${{ runner.os }}-installer
path: |
${{ env.INSTALLER_ARCHIVE }}
if: matrix.os == 'windows-2019' && github.event_name == 'push' && contains(github.ref, 'refs/tags')
if: matrix.os != 'macos-10.15' && github.event_name == 'push' && contains(github.ref, 'refs/tags')
- uses: actions/upload-artifact@v2
with:
name: ${{ runner.os }}-artifacts-debug
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,5 @@ console_backend/tests/fileout.json
get-pip.py
.*.sw?
installers/Windows/*.exe
installers/Linux/*.deb
installers/Windows/NSIS/
21 changes: 21 additions & 0 deletions Makefile.toml
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,27 @@ run_task = [{ name = ["build-dist", "purge-dist", "compress-dist"] }]

[tasks.dist-to-installer]

[tasks.dist-to-installer.linux]
env = { TMP_DIR = "target/installer", OPT_DIR = "opt", USR_DIR = "usr", APP_DIR_NAME = "swift-navigation-console", APPS_DIR = "share/applications", ICONS_DIR = "share/icons/hicolor" }
script_runner = "@shell"
script = '''
if [ -d $TMP_DIR ]; then
rm -rf $TMP_DIR
fi
mkdir -p $TMP_DIR/$OPT_DIR
cp -r py39-dist/ $TMP_DIR/$OPT_DIR/$APP_DIR_NAME/
mkdir -p $TMP_DIR/$USR_DIR/$APPS_DIR
cp installers/Linux/$APP_DIR_NAME.desktop $TMP_DIR/$USR_DIR/$APPS_DIR/
mkdir -p $TMP_DIR/$USR_DIR/$ICONS_DIR
cp -r installers/Linux/hicolor/* $TMP_DIR/$USR_DIR/$ICONS_DIR
fpm -t deb -s dir --depends libxcb-xinerama0 -v $(cat console_backend/src/version.txt) --debug --verbose -C $TMP_DIR -f -n $APP_DIR_NAME $OPT_DIR $USR_DIR
mv *.deb installers/Linux/
'''

[tasks.install-nsis-plugin]
script_runner = "@duckscript"
script = '''
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions installers/Linux/swift-navigation-console.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Desktop Entry]
Name=Swift Navigation Console
Type=Application
Exec=/opt/swift-navigation-console/console
Terminal=false
NoDisplay=false
Categories=Science
Version=1.2
Icon=swift-navigation-console

0 comments on commit fdee18a

Please sign in to comment.