gitlabappimage

How can I build an AppImage on GitLab CI


I'm trying to use Gitlab CI to build an AppImage, but fuse does not seem to be available in the Ubuntu Docker image. Is there any way to build an AppImage on this Docker image or one of the others available or do I need to make my own.

My .gitlab-ci.yml:

image: ubuntu:latest
debian packager:
    stage: build
    script:
        - ./installer.sh --make-deb
    artifacts:
        paths:
            - iicalc.deb
    only:
        - development
AppImage packager:
    stage: build
    script:
        - ./installer.sh --make-appImage
    artifacts:
        paths:
            - ImaginaryInfinity_Calculator-x86_64.AppImage
    only:
        - development

The relevant section in installer.sh:

ARCH=x86_64 ./appimagetool-x86_64.AppImage iicalc-appImage

The error I encounter when the pipeline runs:

dlopen(): error loading libfuse.so.2
AppImages require FUSE to run. 
You might still be able to extract the contents of this AppImage 
if you run it with the --appimage-extract option. 
See https://github.com/AppImage/AppImageKit/wiki/FUSE 
for more information

Link to the repository in case you want to see anything else (AppImage related stuff is on the development branch): https://gitlab.com/TurboWafflz/ImaginaryInfinity-Calculator


Solution

  • You need to extract the AppImage to be able to use it. Like this:

    sudo wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /opt/appimagetool
    sudo chmod +x /opt/appimagetool
    cd /opt/; sudo /opt/appimagetool --appimage-extract
    sudo mv /opt/squashfs-root /opt/appimagetool.AppDir
    sudo ln -s /opt/appimagetool.AppDir/AppRun /usr/local/bin/appimagetool
    

    Read more at: