Skip to content

Commit 9ba6eba

Browse files
committed
feat: add appimage build
1 parent 39baf40 commit 9ba6eba

File tree

5 files changed

+164
-3
lines changed

5 files changed

+164
-3
lines changed

.github/workflows/create-release.yml

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,60 @@ jobs:
293293
quarto --paths
294294
quarto --version
295295
296+
make-appimage:
297+
runs-on: ubuntu-latest
298+
needs: [configure]
299+
300+
steps:
301+
- uses: actions/checkout@v4
302+
with:
303+
ref: ${{ needs.configure.outputs.version_commit }}
304+
305+
- name: Configure
306+
run: |
307+
./configure.sh
308+
309+
- name: Prepare Distribution
310+
run: |
311+
pushd package/src/
312+
./quarto-bld prepare-dist --set-version ${{needs.configure.outputs.version}} --log-level info
313+
popd
314+
315+
- name: Install necessary packages
316+
run: |
317+
sudo apt-get update
318+
sudo apt-get -y install desktop-file-utils
319+
320+
- name: Build AppImage
321+
env:
322+
TARGET_ARCH: x86_64
323+
VERSION: ${{needs.configure.outputs.version}}
324+
run: |
325+
./package/scripts/linux/appimage/build-appimage.sh
326+
327+
- name: Upload Artifact
328+
uses: actions/upload-artifact@v3
329+
with:
330+
name: AppImage
331+
path: Quarto-${{needs.configure.outputs.version}}-x86_64.AppImage
332+
333+
test-appimage:
334+
runs-on: ubuntu-latest
335+
needs: [configure, make-appimage]
336+
steps:
337+
- uses: actions/download-artifact@v3
338+
with:
339+
name: AppImage
340+
path: .
341+
- run: |
342+
mv Quarto-${{needs.configure.outputs.version}}-x86_64.AppImage quarto
343+
chmod a+x quarto
344+
- run: |
345+
ls -lR
346+
./quarto check
347+
./quarto --paths
348+
./quarto --version
349+
296350
make-installer-win:
297351
runs-on: windows-latest
298352
needs: [configure]
@@ -488,9 +542,11 @@ jobs:
488542
make-arm64-tarball,
489543
make-tarball,
490544
make-source-tarball,
545+
make-appimage,
491546
test-zip-win,
492547
test-zip-mac,
493548
test-tarball-linux,
549+
test-appimage,
494550
]
495551

496552
steps:
@@ -525,8 +581,8 @@ jobs:
525581
pushd RHEL\ Zip
526582
sha256sum quarto-${{needs.configure.outputs.version}}-linux-rhel7-amd64.tar.gz >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
527583
popd
528-
fi
529-
584+
fi
585+
530586
pushd Deb\ Zip
531587
sha256sum quarto-${{needs.configure.outputs.version}}-linux-amd64.tar.gz >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
532588
popd
@@ -541,7 +597,11 @@ jobs:
541597
542598
pushd Deb\ Arm64\ Installer
543599
sha256sum quarto-${{needs.configure.outputs.version}}-linux-arm64.deb >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
544-
popd
600+
popd
601+
602+
pushd AppImage
603+
sha256sum Quarto-${{needs.configure.outputs.version}}-x86_64.AppImage >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
604+
popd
545605
546606
pushd Source
547607
sha256sum quarto-${{needs.configure.outputs.version}}.tar.gz >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
@@ -567,6 +627,7 @@ jobs:
567627
./RHEL Zip/quarto-${{needs.configure.outputs.version}}-linux-rhel7-amd64.tar.gz
568628
./Deb Installer/quarto-${{needs.configure.outputs.version}}-linux-amd64.deb
569629
./Deb Arm64 Installer/quarto-${{needs.configure.outputs.version}}-linux-arm64.deb
630+
./AppImage/Quarto-${{needs.configure.outputs.version}}-x86_64.AppImage
570631
./Windows Installer/quarto-${{needs.configure.outputs.version}}-win.msi
571632
./Windows Zip/quarto-${{needs.configure.outputs.version}}-win.zip
572633
./Mac Installer/quarto-${{needs.configure.outputs.version}}-macos.pkg
@@ -587,9 +648,11 @@ jobs:
587648
make-arm64-tarball,
588649
make-tarball,
589650
make-source-tarball,
651+
make-appimage,
590652
test-zip-win,
591653
test-zip-mac,
592654
test-tarball-linux,
655+
test-appimage,
593656
publish-release,
594657
]
595658
runs-on: ubuntu-latest
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/sh
2+
SELF=$(readlink -f "$0")
3+
HERE=${SELF%/*}
4+
export PATH="${HERE}/usr/bin/:${HERE}/usr/sbin/:${HERE}/usr/games/:${HERE}/bin/:${HERE}/sbin/${PATH:+:$PATH}"
5+
export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/i386-linux-gnu/:${HERE}/usr/lib/x86_64-linux-gnu/:${HERE}/usr/lib32/:${HERE}/usr/lib64/:${HERE}/lib/:${HERE}/lib/i386-linux-gnu/:${HERE}/lib/x86_64-linux-gnu/:${HERE}/lib32/:${HERE}/lib64/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
6+
export PYTHONPATH="${HERE}/usr/share/pyshared/${PYTHONPATH:+:$PYTHONPATH}"
7+
export XDG_DATA_DIRS="${HERE}/usr/share/${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}"
8+
export PERLLIB="${HERE}/usr/share/perl5/:${HERE}/usr/lib/perl5/${PERLLIB:+:$PERLLIB}"
9+
export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/glib-2.0/schemas/${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}"
10+
export QT_PLUGIN_PATH="${HERE}/usr/lib/qt4/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt4/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt4/plugins/:${HERE}/usr/lib32/qt4/plugins/:${HERE}/usr/lib64/qt4/plugins/:${HERE}/usr/lib/qt5/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt5/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt5/plugins/:${HERE}/usr/lib32/qt5/plugins/:${HERE}/usr/lib64/qt5/plugins/${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}"
11+
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2 | cut -d " " -f 1)
12+
exec "${EXEC}" "$@"
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/sh
2+
3+
OUTPUT_DIR="./AppDir"
4+
5+
# Remove any previous build.
6+
rm -rf $OUTPUT_DIR | true
7+
8+
# Make appdir and copy quarto files.
9+
mkdir $OUTPUT_DIR
10+
cp -T -r ./package/pkg-working/ $OUTPUT_DIR/usr/
11+
12+
# Add icon and desktop file.
13+
cp ./package/scripts/linux/appimage/quarto.svg $OUTPUT_DIR/
14+
cp ./package/scripts/linux/appimage/quarto.desktop $OUTPUT_DIR/
15+
16+
# Add AppRun file
17+
cp ./package/scripts/linux/appimage/AppRun $OUTPUT_DIR/AppRun
18+
chmod a+x $OUTPUT_DIR/AppRun
19+
20+
# Get and run appimagetool
21+
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
22+
chmod a+x ./appimagetool-x86_64.AppImage
23+
ARCH=$TARGET_ARCH ./appimagetool-x86_64.AppImage $OUTPUT_DIR Quarto-${VERSION}-${TARGET_ARCH}.AppImage
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[Desktop Entry]
2+
Type=Application
3+
Name=Quarto
4+
Icon=quarto
5+
Exec=quarto render %u
6+
Terminal=true
7+
Categories=Development;Building;Science;
Lines changed: 56 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)