Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow the Linux CI to produce AppImages #440

Merged
merged 1 commit into from
Dec 12, 2024

Conversation

it-is-final
Copy link
Contributor

@it-is-final it-is-final commented Nov 11, 2024

Adds the necessary files for the building of the AppImage (.desktop and the icon files) and makes changes to the CI workflow that allows it to produce AppImages via linuxdeploy (though the workflow retains its ability to produce a non-AppImage binary, and still uses its tar.gz for releases).

The AppStream, .desktop and icon files also allow the Flatpak request (described in #393) to be closer to fulfilled, with only the change to the main.cpp still needed to be done.

@it-is-final it-is-final marked this pull request as ready for review November 15, 2024 12:15
@Admiral-Fish
Copy link
Owner

Does it make sense to continue to provide just the original binary as well unpackaged?

@it-is-final
Copy link
Contributor Author

it-is-final commented Nov 23, 2024

It's largely done under the principle of providing choice, but technically there is no need to keep the original binary unpackaged as the binary can still be built through following the build instructions or extracted from the AppImage by running the --appimage-extract option on it through Terminal. But I can change that if it's fine to distribute only the AppImage.

@it-is-final
Copy link
Contributor Author

it-is-final commented Nov 23, 2024

So if providing the binary is considered superfluous, here is some changes I could do to ubuntu.yaml.

Remove this section

      - name: Package PokeFinder binary
        run: |
          mkdir upload
          mv build/Source/PokeFinder .
          tar czf PokeFinder-linux.tar.gz PokeFinder
      
      - uses: actions/upload-artifact@v4
        with:
          name: PokeFinder-linux
          path: PokeFinder

After the second actions/upload-artifact@v4 (which would probably be renamed), I will need to add the following:

      # Some shells don't seem to handle that 'é' so should probably add
      # an `mv` command for renaming
      - Name: Package PokeFinder
        run: |
          tar czf PokeFinder-linux.tar.gz PokéFinder-x86_64.AppImage

This will change the PokeFinder Linux releases so that the .tar.gz files released are the AppImages rather than the raw binaries. This would also change the download size to around 30MB which is unfortunate but is in line with the Mac OS, and Windows releases which are all around 15-25MB downlaods.

@it-is-final
Copy link
Contributor Author

Another small pedantic detail about this PR, it uses linuxdeploy/linuxdeploy rather than using probonopd/linuxdeployqt largely because linuxdeployqt requires building with a really old version of Ubuntu for some reason (apparently compatibility with really old systems).

@Admiral-Fish Admiral-Fish merged commit 7de60d2 into Admiral-Fish:master Dec 12, 2024
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants