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

Generate and upload continuous AppImage, closes #130 #134

Merged
merged 1 commit into from
Sep 11, 2019

Conversation

probonopd
Copy link
Contributor

This PR, when merged, will compile this application on Travis CI upon each git push, and upload an AppImage to your GitHub Releases page.

Providing an AppImage would have, among others, these advantages:

  • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Works out of the box, no installation of runtimes needed
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs
  • Can use the same AppImages when dual-booting multiple distributions
  • Can be listed in the AppImageHub central directory of available AppImages
  • Can double as a self-extracting compressed archive with the --appimage-extract parameter
  • No repositories needed. Suitable/optimized for air-gapped (offline) machines
  • Decentralized

Here is an overview of projects that are already distributing upstream-provided, official AppImages.

PLEASE NOTE: For this to work, you need to set up GITHUB_TOKEN in Travis CI for this to work; please see https://github.com/probonopd/uploadtool.

If you have questions, AppImage developers are on #AppImage on irc.freenode.net.

@probonopd probonopd changed the title Generate and upload continuous AppImage Generate and upload continuous AppImage, closes #130 Sep 9, 2019
@aardappel
Copy link
Owner

Ok, that is a pretty hairy (and probably fragile) script, and sticking tokens in environment variables sounds like a bad idea to me.. but if it works I guess its pretty cool functionality. So let's give it a go!

Thanks for your efforts figuring it all out :)

@aardappel aardappel merged commit bd686f9 into aardappel:master Sep 11, 2019
@probonopd
Copy link
Contributor Author

Ok, that is a pretty hairy (and probably fragile) script,

Well, all the lines marked with FIXME are normally handled by the application's make install. Otherwise scripts like this are in active use in hundreds of projects.

@probonopd
Copy link
Contributor Author

There is no continuous release showing up on GitHub Releases so far, so something must still be broken...

@aardappel
Copy link
Owner

Well, there is a CI error related to GPG and debian since this merge: https://travis-ci.org/aardappel/treesheets/jobs/583825266

@probonopd
Copy link
Contributor Author

Whatever this means:

E: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/main/binary-amd64/Packages  Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.

Possibly it is an intermittent issue that will resolve itself over time?

@aardappel
Copy link
Owner

New errors that appear related to appimage ci: https://travis-ci.org/aardappel/treesheets/jobs/619066758

  "errors": [
    {
      "resource": "Release",
      "code": "already_exists",
      "field": "tag_name"
    },
    {
      "resource": "Release",
      "code": "custom",
      "message": "Published releases must have a valid tag"
    }
  ],

@probonopd
Copy link
Contributor Author

This is strange. Especially since https://github.com/aardappel/treesheets/releases/tag/continuous seems to contain a build of the correct commit nevertheless.

@probonopd
Copy link
Contributor Author

Ah, you seem to be using a build matrix where multiple builds are made for Linux. Please ensure that only one of those builds makes and uploads an AppImage. Otherwise they will try to override each other, which will result in failures.

@aardappel
Copy link
Owner

Err.. I have no idea how any of this AppImage stuff works. Didn't you set it up? What is the fix for this multiple builds issue?

@probonopd
Copy link
Contributor Author

An if statement in .travis.yml that runs the AppImage stuff just for one of the builds, not for multiple ones. Let me know if you need help.

@aardappel
Copy link
Owner

Yup I do.

@probonopd
Copy link
Contributor Author

probonopd commented Dec 7, 2019

Replace

https://github.com/aardappel/treesheets/blob/master/.travis.yml#L85

with something like

else if [[ "$TRAVIS_OS_NAME" == "linux" && "$WXLIB" == "libwxgtk3.0-dev" ]] ; then

(actual syntax might be slightly different but I think you get the point). Need to ensure that the AppImage is generated and uploaded only for one of the builds configured on Travis CI.

@aardappel
Copy link
Owner

Thanks, this seems to have done the trick: 327bf29

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