Add Linux CI support
lijunle opened this issue · 17 comments
Any plan for these?
Yes, figuring out CI for Windows and Linux is a necessary step that will happen before we release official builds of the editor for those platforms.
See #3 for Windows support.
This is closer now that atom/atom#3528 has been merged.
When 0.128 comes out, a .deb
file will be includes on the releases page so it should be possible then to install and run on Travis although I haven't tried it yet.
Time to knock this issue over, as I'm getting compatibility bug reports on go-plus from Linux users. Discussion here: https://discuss.atom.io/t/testing-ci-for-packages-on-linux/13070
@joefitzgerald Yeah, this is somewhat impacted by http://docs.travis-ci.com/user/multi-os/
Originally I was hoping that mac/linux could run uniformly on travis with a green status only when both pass but it doesn't look like that is currently possible.
I might focus on Wercker for Linux. This way we can have three different .yml files (.travis.yml
for OS X, appveyor.yml
for Windows, wercker.yml
for Linux) and not be impacted by the Travis issue.
I might focus on Wercker for Linux
🆒 Never heard of it before but if it works lets 🚢 it.
Well this is interesting: https://github.com/felipefdl/wercker-status/blob/master/wercker.yml
@kevinsawicki Found out some interesting things about the atom .deb file. In the .deb metadata, the following dependencies are listed:
Depends: python (>= 2.6), libc6
When using the deb
on a default wercker box, I get the following error (from https://app.wercker.com/#buildstep/545c092cfa3ae0c7091f13fd):
$ apm --version
module.js:356
Module._extensions[extension](this, filename);
^
Error: libgnome-keyring.so.0: cannot open shared object file: No such file or directory
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/usr/share/atom/resources/app/apm/node_modules/atom-package-manager/node_modules/keytar/lib/keytar.js:4:12)
at Object.<anonymous> (/usr/share/atom/resources/app/apm/node_modules/atom-package-manager/node_modules/keytar/lib/keytar.js:58:4)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
Comparing the metadata with the webupd8team
.deb (http://ppa.launchpad.net/webupd8team/atom/ubuntu/pool/main/a/atom/atom_0.141.0+1-1~webupd8~1_amd64.deb) shows that that distribution includes the following dependencies:
Depends: gconf2, gconf-service, libgtk2.0-0, libudev0 | libudev1, libgcrypt11, libgnome-keyring0, gir1.2-gnomekeyring-1.0, libnotify4, libxtst6, libnss3, python, gvfs-bin, xdg-utils
libgnome-keyring0
Is present in that list, but I assume it's just the tip of the spear. Which raises a few questions:
- Should the .deb file have a larger list of dependencies?
- What are the known prerequisites for Atom on Ubuntu? In particular, if you assume that
ubuntu-desktop
is not installed. - Would the team be willing to augment the list of dependencies in the official .deb package?
apm needs to gracefully degrade when keytar isn't present, it should really be an optional dependency since it is only needed if you don't want to log in each time you run commands like apm publish
Would the team be willing to augment the list of dependencies in the official .deb package?
Absolutely, whatever works, the .deb
package is still evolving.
If this goes through with Travis, it might be worthwhile to add a sudo: false
line to speed up the Travis build. See http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/.
Hi @kevinsawicki, I just have tested one Linux version for my package and I managed to get it working on travis, I made some changes on the build-package.sh file to adapt and tweak some issues I found.
Check the latest build apparently everything is ok.
Let me know if you want to add the changes to the main repository.
Cheers
Hello!
I updated instructions #21 on how to use CircleCI to test atom packages. By default CircleCI uses an Ubuntu Linux container.
@kevinsawicki I got the same method to work as I used on CircleCI on Travis, for the PR how should I handle having two .travis.yml
files in this repo?
We can either have .travis_linux.yml (and tell people to rename), or perhaps just have a branch?
We can either have .travis_linux.yml (and tell people to rename), or perhaps just have a branch?
How about linux.travis.yml
?
Hi Kevin,
Works for me! I'll send a PR :)
Best,
Lev
On Oct 20, 2015, at 8:56 AM, Kevin Sawicki notifications@github.com wrote:
We can either have .travis_linux.yml (and tell people to rename), or perhaps just have a branch?
How about linux.travis.yml?
—
Reply to this email directly or view it on GitHub #2 (comment).
See #22.