GodotBuilder / godot-builds

Deploys Godot Engine release binaries via Travis CI and AppVeyor
https://godotengine.org
44 stars 12 forks source link

Move Travis android and javascript builds to Linux host #13

Open akien-mga opened 6 years ago

akien-mga commented 6 years ago

We currently use OSX build nodes on Travis for the Android and Javascript builds, as when I set up it was more convenient to get the dependencies (resp. SDK + NDK and Emscripten).

Travis is always overburdened on the OSX side though (it has only 90 nodes available currently for up to 1500 builds of backlog!), so it can take half a day before builds start at all, which sucks when I want to make a release.

We've already successfully moved Android builds to Linux on https://github.com/godotengine/godot/blob/master/.travis.yml and the same should be doable for Emscripten too.

CC @rraallvv and @eska014, if you want to help with this that would be great :)

rraallvv commented 6 years ago

@akien-mga it seems it's possible to upload binaries to Github releases pretty much from anywhere using the Github API, I'll have to check if there are some limitations though, like for instance file size. Maybe we could just call that script in some additional step after each target and exporter is built. Also for the huge Tarvis-ci backlog we could use Bitrise-ci instead only for macOS and iOS builds, although using Travis-ci shouldn't be a problem since this repo will be only triggering builds sporadically. I'm going to make some test in a fork this weekend to see how it goes.

akien-mga commented 6 years ago

it seems it's possible to upload binaries to Github releases pretty much from anywhere using the Github API, I'll have to check if there are some limitations tough, like for instance file size. Maybe we could just call that script in some additional step after each target and exporter is built.

Not sure what you mean? We already upload build artifacts to GitHub Releases, that's how we make our official binaries.

rraallvv commented 6 years ago

@akien-mga I mean adding assets to new releases that would appear here

akien-mga commented 6 years ago

Ah ok but I don't intend to do this, or at any rate not from CI (most binaries need some more work to have the final state we ship on our download repo). And that's outside the scope of this issue anyway :D

rraallvv commented 6 years ago

@akien-mga if we could put those additional steps in a script, maybe we could automate everything. So, for instance, with each official release we'd need just to push a tag to this repository that would trigger all builds and would upload all binaries (editors and exporters) to the Godot repository.

leonkrause commented 6 years ago

PR for the javascript platform is at #14

rraallvv commented 6 years ago

About being able to upload release assets to the Godot repository pretty much from anywhere. These are some ways to do it:

Using the built-in mechanisms in AppVeyor and Travis to encrypt files.

For Bitrise, they have what they call "secrets", which are environment variables available either locally or via the web-UI, and that are not available for pull requests and forks.

Using those mechanisms we could build all editors and exporters and upload them to the Godot repository or any private server.