What I want to do
I have a python script named turnin.py and a requirements.txt file which you can find on GitHub
What I want is that I want to create multiple packages(like .deb, .rpm and .AppImage) through workflows.
The problem that I have
I created a GitHub workflow to create an AppImage file and upload it as an artifact.
name: Create AppImage
on:
  push:
    branches:
      - master
jobs:
  build-and-package:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: 3.8
      - name: Install dependencies
        run: |
          python -m venv venv
          source venv/bin/activate
          pip install -r requirements.txt
      - name: Install FUSE
        run: |
          sudo apt-get install -y fuse
      - name: Prepare AppDir
        run: |
          mkdir -p AppDir
          cp -r venv AppDir/
          cp turnin.py AppDir/venv/bin
          chmod +x AppDir/venv/bin/turnin.py
          echo "[Desktop Entry]" >> AppDir/turnin.desktop
          echo "Name=TurnIn" >> AppDir/turnin.desktop
          echo "Exec=AppRun" >> AppDir/turnin.desktop
          echo "Icon=/venv/bin/turnin" >> AppDir/turnin.desktop
          echo "Type=Application" >> AppDir/turnin.desktop
          echo "Categories=Utility;" >> AppDir/turnin.desktop
          cp cse.logo.png AppDir/venv/bin/turnin.png
          # Add the shebang line to AppRun
          echo "#!/bin/bash" >> AppDir/AppRun
          echo 'APPDIR=$(dirname "$(readlink -f "$0")")' >> AppDir/AppRun
          echo 'PYTHON="$APPDIR/venv/bin/python"' >> AppDir/AppRun
          echo '$PYTHON "$APPDIR/venv/bin/turnin.py"' >> AppDir/AppRun
          chmod +x AppDir/AppRun
      - name: Download and install linuxdeploy
        run: |
          wget -c https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
          chmod +x linuxdeploy-x86_64.AppImage
          sudo mv linuxdeploy-x86_64.AppImage /usr/local/bin/linuxdeploy
      - name: Create AppImage
        run: |
          ARCH=x86_64 linuxdeploy --appdir AppDir --output appimage
          chmod +x ./*.AppImage
      - name: Upload AppImage artifact
        uses: actions/upload-artifact@v2
        with:
          name: turnin-appimage.AppImage
          path: ./*.AppImage
This code succesfully produces the appImage but I cannot run it because I get the result:
/tmp/.mount_TurnIn9yIsSZ/AppRun: line 4: /tmp/.mount_TurnIn9yIsSZ/venv/bin/python: No such file or directory
If I extract the app image file I find that the file venv/bin/python exists
lrwxrwxrwx 1 porfanid porfanid    49 Αυγ  21 21:02 python -> /opt/hostedtoolcache/Python/3.8.17/x64/bin/python
lrwxrwxrwx 1 porfanid porfanid     6 Αυγ  21 21:02 python3 -> python
So I cannot really find out what the problem is.
Where you can find the files
The AppImage file is uploaded here