atom / ci

Build your Atom packages

Home Page:https://atom.io/packages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add Linux CI support

lijunle opened this issue · 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/

screen shot 2014-11-05 at 10 35 11 am

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.

@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:

  1. Should the .deb file have a larger list of dependencies?
  2. What are the known prerequisites for Atom on Ubuntu? In particular, if you assume that ubuntu-desktop is not installed.
  3. 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).