eclipse-theia / theia

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.
http://theia-ide.org
Eclipse Public License 2.0
19.99k stars 2.5k forks source link

Set up CI system to create desktop installer of vanilla Theia #5481

Closed thegecko closed 4 years ago

thegecko commented 5 years ago

Feature requirement to extend CI systems to build installers for the desktop flavour of Theia for:

In order to correctly sign these, they will need to be built on Windows, Mac and Linux machines accordingly.

Options for systems to include:

cc @arekzaluski @svenefftinge

vince-fugnitto commented 4 years ago

@chrisjj the issue has been discussed and planned by the main community, and one of the main contributing companies are currently working on implementing the feature. In the dev-meeting, the community has discussed on what the best approach would be to handle the automation of the installers, the CI setup (for different operating systems), and other important factors.

ride4sun commented 4 years ago

Is there a ETA?

vince-fugnitto commented 4 years ago

Is there a ETA?

@ride4sun no, there is none as of today. We need to make sure that the automation of the installers are done correctly and with quality as ultimately end-users will be the ones to consume them. If you are pressed for time, building you own IDE is quite easy, we have many examples and you can start using it today. For example, if you require a desktop Theia IDE, you can take a look at the theia-electron example which when built and packaged you can continue using like any standard application.

marcdumais-work commented 4 years ago

Locked except for committers. Pestering the project for one's pet feature is not productive.

As @vince-fugnitto said, Theia is a framework. It's targeted at IDE Developers that want an alternative to forking VS Code and/or something VS Code-like that also runs well in the Cloud. This project was never meant to host an IDE product based on Theia - there will be other Eclipse Foundation projects for that eventually. Here are the details: https://projects.eclipse.org/projects/ecd.theia

For those that just want to use (vs make/design/maintain) an alternate desktop IDE, like VS Code but open-source, your best bet right now is VSCodium. I have no doubt we'll have installers here soon, but what it will install will not be a full-fledged IDE product.

@thegecko would you share your plans as per the dev-meeting? I can then link to here from the minutes :)

thegecko commented 4 years ago

@thegecko would you share your plans as per the dev-meeting

Sure, as discussed in the dev meeting yesterday, the plan is to stand up a travis build system for the theia apps project.

For now we want to prove this will work so Initially we aren't going to worry about signing any installers and will also defer decisions around the channels to be released.

To set delivery expectations, this is something I'm doing in my spare time, so please offer help if you want this accelerated. I see Windows support on travis is experimental, so we may hit blockers quickly.

marcdumais-work commented 4 years ago

Thanks Rob.

I see Windows support on travis is experimental, so we may hit blockers quickly.

True, but we've been using Travis on this repo here, for our Windows CI, since we moved to the Eclipse Foundation's org, and as far as I remember, we've had little issues caused by the service (windows-specific issues, e.g. related to the specificities of their file system, are another matter)

See here for the windows part of the Travis config we use here.

kittaakos commented 4 years ago

In order to correctly sign these

@thegecko, you have some experience with creating and shipping a signed electron-based app. Can you please tell us how long does it roughly take to sign the Arm Mbed Studio for macOS? Have you managed to pack with asar? Thank you!

I see Windows support on travis is experimental, so we may hit blockers quickly.

Recently, I have managed to sign a dummy electron app with GH Actions so if Travis CI cannot do the Windows part, we can use GH Actions.

Unfortunately, I was hitting timeout issues (with GH Actions) when I wanted to sign a Theia-based app. Probably because it's a giant, almost 500MB (VS Code is ~240 MB).

thegecko commented 4 years ago

Can you please tell us how long does it roughly take to sign

Builds are about 40 minutes in total for each platform

Have you managed to pack with asar

We don't use asar

...if Travis CI cannot do the Windows part, we can use GH Actions

I wasn't aware GH actions were available for Windows, I assumed they were all docker images

kittaakos commented 4 years ago

Builds are about 40 minutes in total for each platform

Does this 40 min include the singing against the Apple server?

thegecko commented 4 years ago

Does this 40 min include the singing against the Apple server

Yes, it includes macOS notarization

marcdumais-work commented 4 years ago

@thegecko I noticed that the VSCodium project generates packages for many OS, and it looks like they sign the Mac ones using Travis. Maybe this can serve as inspiration.

kittaakos commented 4 years ago

Yes, it includes macOS notarization

Thank you, @thegecko. It was a very useful input. Does this mean you do not have the "sign" : true explicitly set in the config, you run the notarization only but not an explicit singing, right?

also defer decisions around the channels to be released.

I propose not using channels (well, just the default, latest), but having a separate insider build which gets an update each evening. VS Code uses this pattern, it works perfectly.

If anyone is wondering what the channels are: https://www.electron.build/tutorials/release-using-channels

thegecko commented 4 years ago

PR for a first pass of this here: https://github.com/theia-ide/theia-apps/pull/370

thegecko commented 4 years ago

First releases of theia-example v1.2.0 are now appearing here:

https://download.eclipse.org/theia/

Still unsigned and currently untested.

thegecko commented 4 years ago

Signed versions now available:

https://download.eclipse.org/theia/1.2.0/

MacOS version still needs to be notarised.

thegecko commented 4 years ago

Happy to announce we now have signed and notarized installers for MacOS.

This means the CI work for creating desktop installers is complete.

The latest installers for all platforms can be found here:

https://download.eclipse.org/theia/

marcdumais-work commented 4 years ago

Awesome, thanks @thegecko