Skip to content
This repository has been archived by the owner on Mar 25, 2022. It is now read-only.

CI Infrastructure #100

Closed
chriscool opened this issue Oct 15, 2015 · 56 comments
Closed

CI Infrastructure #100

chriscool opened this issue Oct 15, 2015 · 56 comments

Comments

@chriscool
Copy link

chriscool commented Oct 15, 2015

As we investigate golang/build (see issue #99) we might want to figure out what would make us super happy both in the short and long term.

The basic goals are:

  • run builds for various platforms
  • run tests in various platforms
  • run longer network/protocol tests on demand

And two constraints are:

  • having a reasonable scalability path to dozens, hundreds, thousands, then even millions of nodes. with thousands, then millions of jobs; these might mean multiple tools along the way.
  • untrusted / well-scoped trust environment, sandbox heavily, job redundancy or maybe a trust graph.

Related issues:

@ghost ghost mentioned this issue Nov 9, 2015
@daviddias daviddias changed the title Detail our goals for a build/CI infrastructure CI Infrastructure Aug 15, 2016
@daviddias
Copy link
Member

In today's sprint hangout, CI was brought up as one of the main points that are blocking our development teams from moving faster. I was going to open a issue in ipfs/community, but since this one already existed, let's continue here.

Current issues:

  • circle-ci and travis-ci are slow and they don't let us upgrade our account, since all our projects are open source
  • we get into 'travis queue' a lot, since the majority of the projects belong to the same github organization, we hit the CI runs limit faster, sometimes having to wait even 30 minutes just to start running the tests.

Requirements:

  • Support several platforms (Linux, Mac, Windows)
  • Support several browsers (Chrome, Firefox)
  • Be blazing fast (we probably need auto scalling for when the team is working all at the same time)
  • No queue waiting on CI
  • Support custom environments (for interop tests)
  • Support spawning thousands of nodes. If possible, distributed across different locations.

Possible solutions:

@chriscool you have an incredible amount of experience testing different projects with very eccentric needs, if you feel like Captaining this endeavour and optimising our CI infrastructure to enable our dev team to move forward faster, either by leading or building, that would be amazing!

@yoshuawuyts, I know you are also really excited with CI and have been doing a lot of work with BuildKite, your thoughts on this are greatly appreciated.

Let's gather all ideas before Wednesday, August 17, so that we can have a call and commit to a plan to move forward. Does 4:30pm UTC work for everyone?

//cc @jbenet @whyrusleeping @flyingzumwalt @dignifiedquire

@jbenet
Copy link
Member

jbenet commented Aug 15, 2016

  • I think Circle-CI does let us upgrade. verify this.
  • I think Travis-CI can be convinced. someone should contact them. (i'd offer to, but have other things)

@ghost
Copy link

ghost commented Aug 15, 2016

Can I be on this call?

@yoshuawuyts
Copy link

yoshuawuyts commented Aug 16, 2016

Hey @daviddias, thanks for pinging me. I won't be able to make the call (yay,
hosting a Nodeschool) so I'll just leave my reply here.

You're right in saying I'm quite a fan of buildkite. I've been using it for the
past week, and must say I'm impressed. For IPFS, some of the benefits I think
buildkite has over other implementations is:

  • Precision management of nodes; you host your own workers and only pay
    buildkite for the no. of people in the org. You can also put workers on OSX,
    Windows, BSD etc. so cross-platform / device testing can become unified.
  • Build configs are checked into source; this means that unlike some of the
    other self-hosted solutions there are no giant XML files to configure, but
    everything is nicely scoped.
  • Zero knowledge; buildkite never checks out your code. They're used by banks.
    I think they're passing like these security checks and stuff. I think.
  • and probably more stuff I'm forgetting

But there's one major drawback to all this: they don't have public build
support (yet). It's on the roadmap, but not a solution for right now.

So I've reached out to the @buildkite people today, asking them what's up with
public builds. Apparently other orgs such as Cordova use an (automated) invite
system that gets new people on the org whenever they make a PR. This apparently
works alright for them.

Another option @toolmantim suggested was creating a custom frontend for builds.
A custom page like builds.ipfs.io could work; though this has the drawback
that it would need to be implemented. Having a custom, public UI might be the
right solution in the long term, but given the current work load that might be
an unwelcome distraction to the timeline. The architecture he proposed was
this:

 ┌───────────────────────────┐           ┌────────────┐             ┌─────────────────────────┐
 │  github.com/ipfs/project  │           │ Buildkite  │             │ https://builds.ipfs.io  │
 └───────────────────────────┘           └────────────┘             └─────────────────────────┘
               │                                │                                │             
               │                                │                                │             
               ├───────────PR opened / ─────────▶                                │             
               │            fork push           │                                │             
               │             webhook            │                                │             
               │                                └───────────Events via───────────▶             
               │                                             webhooks            │             
               │                                                                 │             
               │                                                                 │             
               │                              POST                               │             
               ◀─────────────────────────────commit ─────────────────────────────┤             
               │                             status                              │             
               │                                                                 │             
               │                                                                 │             
               │                                                                 │             
               │                        Contributor can                          │             
               └──────────────────────click through or go ───────────────────────▶             
                                          directly to                                          
                                                                                               
                                                                                               
            Buildkite handles jobs dispatching, running agents, streaming logs,                
            capturing artifacts etc.                                                           
                                                                                               
                                                                                               
            builds.ipfs.io is a Node app that:                                                 
            - Receives Buildkite webhooks, posts commit status to GitHub                       
            - Display builds using Buildkite REST or GraphQL API (can use artifacts and        
            meta-data to instrument/customize the build results)                               
            - Serves up dynamic build badges based on Buildkite build info                     

Some of the things that were also discussed were full-public orgs; where every
single build is public info is public. As @toolmantim it might make sense to
run open source builds on a physically separate infrastructure from anything
that might contain keys / do deploys. So separating private / public might make
sense right there.

Ueh, and I think that's about it. I think if you holler at @toolmantim for
specific questions he can provide a better reply about the buildkite stuff than
I can.

Hope you find a good solution. Cheers! ✌️

See Also

@toolmantim
Copy link

👋 I just had a chat with @yoshuawuyts about it all. Just to clarify, nobody does the auto-invite thing just yet. But we're free for open-source, we just have to hit a button for you, and we're happy to support IPFS if you wanted to go w/ Buildkite. I'd recommend two completely separate Buildkite orgs in your case… one for third-party PRs, and another for core/internal use.

@ghost
Copy link

ghost commented Aug 16, 2016

Hi @toolmantim, I am evaluating a CI system for ipfs-cluster. Just to know: Do you provide support for docker? How about kubernetes?

(This is a little separate from the whole IPFS team goals, so take my questions with a grain of salt 😃 )

@yoshuawuyts
Copy link

@hermanjunge yeah it does. Have been using it for the past few days on google super tiny (micro?) nodes; and a few odd restarts aside (yay, low ram) they seem to be holding up quite well.

See Also

✌️

@toolmantim
Copy link

toolmantim commented Aug 16, 2016

@hermanjunge yeah, the build agent runs on Docker and Kubernetes just fine, we just don't have the equivalent to buildkite/elastic-ci-stack-for-aws for Kubernetes just yet. But we have buildkite/helm-charts. And then for the actual build tasks themselves, they can run in Docker (for stable agent see the guide or for beta agents we've moved it into a plugin: buildkite-plugins/docker-compose-buildkite-plugin). Might want to move this to another issue to talk more tho?

@ghost
Copy link

ghost commented Aug 16, 2016

@toolmantim Amazing! I have some tests scenarios that involve building docker images, and deploying into kubernetes before running the tests. Will sign up, learn and provide feedback of Buildkite. Thank you very much for answering.

@whyrusleeping
Copy link
Member

@toolmantim thanks for stopping by, buildkite looks really nice :)
for the record, i'm in love with teamcity, but i'm open to something that looks less enterprise-java-ey and still provides the same features.

It looks like with buildkite we still have to manually set up each repo we want CI for (same with teamcity). Are there any nice automations for setting up a 'stock CI setup for environment X'? Similar to how easy it is to get travis CI running?

teamcity provides really nice metrics such as build time per step, total tests run, number of tests passed and ignored. The latter few are because teamcity has plugins to parse and understand test output, does buildkite have anything similar?

Following along the previous point, We currently fail our tests if the number of tests executed drops significantly from the previous successful run. This is because teamcity allows us to define custom failure conditions based on both preset and user defined parameters. I think this is super cool and would hope that we have similar capabilities in any system we switch to.

It looks like buildkite supports windows, does it run scripts in cmd or git bash? (or can we specify?)

I notice in some of the documentation (that I admittedly havent read too far into) that there are buildkite hook files that get committed into vcs. It seems odd to have configuration both in the repo and on the buildkite admin page. Whats the purpose of that?

Anyways, I look forward to trying it out. I made an account and created an ipfs org, but haven't yet had time to make it any farther. Thanks!

@chriscool
Copy link
Author

@diasdavid yeah I have some experience especially with Jenkins but it is not part of the possible solutions.
GitLab CI is also multi-platforms but maybe it is too much integrated with GitLab CE these days.
I will try to get more information about GitLab CI.
Also it will be difficult for me to attend tomorrow's call as I am having a vacation these days.

@daviddias
Copy link
Member

It seems to me that we have some solid action items before jumping onto a call, these are:

  • Check if we are able to upgrade our circle-ci account being open source and what pricing options they have for our needs
  • Reach out to travis-ci and learn if they have any plans of having more powerful open source plans
  • Try buildkite -> Set it up for a go and a js repo and get a feeling of the experience of it
  • Check what are the options with GitLab CI
  • Evaluate Teamcity

Let's postpone the call until we have these items done, otherwise we might not be able to decide anything more than what we've discussed on this thread. It would be also good to have everyone when it happens.

@ghost
Copy link

ghost commented Aug 17, 2016

Try buildkite -> Set it up for a go and a js repo and get a feeling of the experience of it

@diasdavid I can commit to try buildkite, and do a quick video with a flow.

EDIT: I was pestering everybody for the when and where of the call...

@whyrusleeping
Copy link
Member

@hermanjunge If you want, i can invite you to the ipfs buildkite org and you can try setting something up there. It might make it easier for the rest of us to see

@ghost
Copy link

ghost commented Aug 18, 2016

@whyrusleeping Excellent. Do you have my email?

@whyrusleeping
Copy link
Member

@hermanjunge yeap! sent out an invite

@chriscool
Copy link
Author

About GitLab CI it looks like the best is to setup Repository Mirroring on GitLab: http://docs.gitlab.com/ee/workflow/repository_mirroring.html, as GitLab now integrates GitLab CI.
There is also the Quick Start docs for CI: http://docs.gitlab.com/ce/ci/quick_start/README.html
I will try to test this. Maybe I could test this on the Sharness repo.

@jbenet
Copy link
Member

jbenet commented Aug 23, 2016

Can gitlab CI work as a github CI indicator? Could ease the transition
On Mon, Aug 22, 2016 at 13:57 Christian Couder notifications@github.com
wrote:

About GitLab CI it looks like the best is to setup Repository Mirroring on
GitLab: http://docs.gitlab.com/ee/workflow/repository_mirroring.html, as
GitLab now integrates GitLab CI.
There is also the Quick Start docs for CI:
http://docs.gitlab.com/ce/ci/quick_start/README.html
I will try to test this. Maybe I could test this on the Sharness repo.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#100 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIcoXkz7tcaFRxhWnyW8I51OqZmrndNks5qieMSgaJpZM4GPLPn
.

@jbenet
Copy link
Member

jbenet commented Aug 23, 2016

(Of their potential users)

On Mon, Aug 22, 2016 at 23:35 Juan Benet juan2@benet.ai wrote:

Can gitlab CI work as a github CI indicator? Could ease the transition
On Mon, Aug 22, 2016 at 13:57 Christian Couder notifications@github.com
wrote:

About GitLab CI it looks like the best is to setup Repository Mirroring
on GitLab: http://docs.gitlab.com/ee/workflow/repository_mirroring.html,
as GitLab now integrates GitLab CI.
There is also the Quick Start docs for CI:
http://docs.gitlab.com/ce/ci/quick_start/README.html
I will try to test this. Maybe I could test this on the Sharness repo.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#100 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIcoXkz7tcaFRxhWnyW8I51OqZmrndNks5qieMSgaJpZM4GPLPn
.

@chriscool
Copy link
Author

@jbenet I think so. By the way you may want to read dak1 comments on this HN thread about yesterday's GitLab release: https://news.ycombinator.com/item?id=12338096

@ghost
Copy link

ghost commented Aug 30, 2016

Hi @toolmantim Our buildkite trial just expired and haven't had the chance to build a proper test yet. Can we get an extension trial, so I can describe my experience here ??? 😬

Here is the email

screen shot 2016-08-29 at 11 12 47 pm

(cc @whyrusleeping @yoshuawuyts )

@toolmantim
Copy link

@hermanjunge all fixed, I just extended it for a month. If this Buildkite org is for all third-party and public builds, I'll switch it to a free/open-source account if you like. But I'd suggest a separate org for private/sensitive/secure build pipelines, for doing all the releases etc, with a completely separate set of build agents (in their own VPC etc). ipfs-core for example. Anywho, fell free to bug me if you need a hand.

@yoshuawuyts
Copy link

Stumbled upon this article about popular self-hosted CI exploits; figured it might be relevant to the topics discussed here

@backus
Copy link

backus commented Sep 8, 2016

Hey guys. The buildkite team linked me to this issue. If you would like to take a look I just implemented buildkite for an open source project I work on in my free time. See this PR: rubocop/rubocop-rspec#205

@whyrusleeping
Copy link
Member

@backus thats awesome :)

Any idea how you would go about doing tests on windows and/or OSX?

@backus
Copy link

backus commented Sep 8, 2016

@whyrusleeping that I can't comment on if you need the OS inside the docker container to be windows or OS X.

@victorb
Copy link
Member

victorb commented Sep 17, 2016

How can you enable viewing of this stuff without logging in?

@toolmantim can activate the IPFS organization as an free/open-source account, then we get public builds. Then, if we start having private builds, we have a different BuildKite organization, we just need to find a way of sharing the pipelines between them, possible via setting up a repo for composing pipelines together.

The BuildKite IPFS Organization lives under https://buildkite.com/ipfs

quote from above

If this Buildkite org is for all third-party and public builds, I'll switch it to a free/open-source account if you like. But I'd suggest a separate org for private/sensitive/secure build pipelines, for doing all the releases etc, with a completely separate set of build agents (in their own VPC etc). ipfs-core for example. Anywho, fell free to bug me if you need a hand.

@jbenet
Copy link
Member

jbenet commented Sep 17, 2016

@victorbjelkholm thanks-- missed that. yeah i'd say lets make it public

@victorb
Copy link
Member

victorb commented Sep 22, 2016

I sent an message to the BuildKite folks about activating public builds but seems like I misunderstood the relationship between public builds and a free/open source account.

So they have a free plan for open source projects, but there is no public builds. Asked them about a timeline for public builds but they don't have any ideas about the timeline for it...

The quest goes on...

@chriscool
Copy link
Author

I am working on using GitLab CI to test Sharness on both Linux and Windows.

https://gitlab.com/chriscool/sharness/ is a mirror of https://github.com/chriscool/sharness/ that is automatically refreshed.

I installed a "GitLab CI Runner" on my Windows machine and I am using some shared Runners provided by http://gitlab.com to run the tests on Linux. Currently there is something wrong with the way my Windows Runner is configured so the tests on Windows fail immediately.

See: https://gitlab.com/chriscool/sharness/pipelines/4356014

But hopefully it will work soon.

@victorb
Copy link
Member

victorb commented Sep 23, 2016

@chriscool are you setting up the runner with privilege so you can do DIND (docker-in-docker) or mounting the .sock for the docker api? Seems like there is something missing with the api connection

@chriscool
Copy link
Author

Yeah, I think I shouldn't use docker on Windows. I will try another configuration for the runner.

@dignifiedquire
Copy link
Member

This might be intersting to look at as well https://medium.com/@hichaelmart/lambci-4c3e29d6599b#.3ydwhefgk

@chriscool
Copy link
Author

Some GitLab related links:

From the main GCE page it looks like Google Compute Engine (GCE) has support for "Debian, CentOS, CoreOS, SUSE, Ubuntu, Red Hat, FreeBSD, or Windows 2008 R2 and 2012 R2" and "shared image from the Cloud Platform community", or our own images.

@ghost ghost added ci and removed ci labels Nov 3, 2016
@victorb victorb mentioned this issue Dec 7, 2016
@victorb
Copy link
Member

victorb commented Dec 7, 2016

So I've sat down, looked over multiple different solutions and tried them out.
I haven't really found something that is perfect and "AH!, that's exactly what we
need" but rather I've nailed it down to a few viable options with tradeoffs, we
just have to make the right choice based on the tradeoffs and gains.

Problems needing solution

  • Slowness
  • Good UI
  • Configuration of server/agent/jobs
  • Supports Linux/OSX/Windows/Others and different browsers
  • Reliable
  • Ability to do what we want AKA Supported Features
    • Should be able to run go-ipfs/js-ipfs-api integration testing
    • on demand, configurable long-running tests, performance and reliability tests
    • nightly builds
    • Github integration
    • Being able to deploy go-ipfs versions to gateways

All these are aggregated with searching through discussions on Github in IPFS
organization, from #ipfs and in person.

Review of systems

First part of my review was to go through a list of the CI systems I could find
and aligned kind of what we want to use. You can see this list here: https://docs.google.com/spreadsheets/d/11kTloM6d1CGu_ycmP3XzpteGpJtij-h6q07anM5ZuGs/edit?usp=sharing (ignore the item on row 24, that's just my own dream CI :) )

Second part of my review was to actually try the CI's out, and here is what I found so far

Concourse

Self-hosted. Does most things we want to do, is blazing fast and very easy to setup and maintain.
Built around BOSH but not neccessary to use. However, very young and some problems
are unsolved so far, requires a lot of workarounds for things like caching and
integration with GH for example. UI is a really nice one. Does not fit
entirely for us, yet at least.

BuildKite

Run our own agents, perfect. UI that makes sense. Configuration of jobs that is reusable
Built for private organizations, no public UI. Would require us to design and implement
UI for that, or setup some sort of automatic inviting on PR. Too limited for
public organizations in my opinion.

TeamCity

Self-Hosted. Giant in CI, configurable until you can't recongnize it anymore. Does pretty much
everything. Can be configured via code (Kotlin), however, no reference or docs
and very verbose. But can pretty much do everything we want, we would need to
self-host though. Also UI is not really there, being pretty bloated.

Jenkins

Self-Hosted. Second giant in CI. Also very configurable, but the more you configure, the
more unstable it tend to become. However, covers most of our bases, and has
support for coded configuration as well. Jenkins have been used in the IPFS
project before switching to TeamCity. To note, is that Jenkins made several
large improvements since last time around in IPFS. BlueOcean is a new UI project,
making it a lot better and Jenkins 2.0 introduces native pipelines that can be coded and
reused. Another nice feature is that Jenkins can be setup to create our jobs
automatically, after pointing it to our Github organization.

GoCD

Self-Hosted. Focus on pipelines from the ground up. Simple UI. Not very extensible, small
community. Also built for private organizations, would be require large effort
to make fit our open source nature.

CircleCI

Hosted service. Allows us to easily setup simple jobs. Not very good for bigger
things. Easy configuration. Would require us to setup reusable jobs by ourselves.
Won't let us upgrade because everything is open source. Doesn't support windows

TravisCI

Hosted service. We're currently using Travis, and having troubles with waiting
times and execution time, so not very fast. Simple UI though. Same applies as
with CircleCI, easy configuration for simple things but limited everywhere else.
No good for long running jobs. Can't upgrade so will seemingly forever be slow.
Does not support windows neither.

Gitlab-CI

Gitlabs solution for doing CI. Works well, when inside the Gitlab ecosystem.
Haven't really found any good way of integrating the Gitlab-CI with Github and
it's very new, not a lot of usable thing. Independent agents are good though,
allowing us to run them ourselves. Can't find any ways of doing on-demand builds
though, or rather parameterized ones.

Conclusion

In the end, we end up with two different viable options. TeamCity and Jenkins.

Pitting them against each other, they fit all the needed features, either natively
or via plugins. We'll end up hosting the infrastructure for CI ourselves, at least
for now.

TeamCity

  • TeamCity is very easy to setup new agents for.
  • Bloated UI
  • Poor Documentation
  •   * We have unlimited agents with OSS license
    
    

Jenkins

  • Built-in pipelines
  • Much better UI with Blue Ocean
  • Better extensible and bigger community, everything exposed for plugins

In the end, they are mostly the same, but after going back and fourth, trying both
of them, I'd like to dive deeper into giving Jenkins a serious run.

I'm pretty confident Jenkins in the end would fit us better than TeamCity. Main
reason for switching to TeamCity from Jenkins in the beginning, was that Juan
didn't have time to maintain Jenkins and no one else could. I do have experience
with Jenkins and can take the responsibility for it.

I would like to give a larger try to Jenkins to review the new changes in Jenkins
and try to setup a cluster of agents, test-jobs for various organizations within
the IPFS project and integration test for go-ipfs/js-ipfs-api

@Kubuxu
Copy link
Member

Kubuxu commented Dec 7, 2016

re CircleCI:
They allow you to pay to upgrade but only for more concurrent containers. That doesn't change that their containers are painfully slow. Comparison (my PC, CircleCI): go-ipfs coverage build 1min 14s (about 250% concurrency) vs 8 to 12 min, go-ipfs full cross-package coverage build 8min vs 40min to 1h 20min.

re TeamCity:
We have OSS license with Unlimited build agents and build configurations.

@chriscool
Copy link
Author

re GitLab CI:
On the spreadsheet it looks like:

Also what do you mean by "Status Matrix" and by "Metrics"?

I am wondering how you evaluated it.

@victorb
Copy link
Member

victorb commented Dec 7, 2016

@chriscool I made the evaluation about Gitlab-CI with the assumption that we still want to host our projects on Github and not migrate them to Gitlab. "Configuration in SCM" refers to the setup of the server, which with Gitlab.com we don't control that. If we setup our own Gitlab instance, that seems possible, but not sure we want to host Gitlab just to get the CI.

it is not "Self Hosted", but it is part of GitLab and we could certainly self host it, no?

Sure, that is true that we could. However, we can't host just the CI, was my thinking regarding that.

it has no "Dashboard" but what do you mean by that exactly? Isn't something like https://gitlab.com/gitlab-org/gitlab-ce/pipelines a dashboard?

That seems to be a list of the current builds and pipelines, which is good but is missing an overview of the status of the pipelines/jobs, aggregated data basically, to be able to get a quick glance if the project "healthy" or not.

Also what do you mean by "Status Matrix" and by "Metrics"?

Status Matrix would mean if we can build a table with current build status for different builds on different platforms. Metrics would be some sort of analytics. Gitlab includes "Cycle Analytics" which seems limited in the way that you need to use Gitlab to have use of that.

In general, those features are not deal breakers, but rather the lack of most of the other things.

However, if I missed something about Gitlab-CI or misunderstand, it would be great if you clarified it.

@chriscool
Copy link
Author

@victorbjelkholm about GitLab CI you also say above "Can't find any ways of doing on-demand builds
though" but on https://gitlab.com/gitlab-org/gitlab-ce/pipelines for example there is a green "Run Pipeline" button.

About "Self Hosted", even if we would have to host GitLab, if we want GitLab CI, it seems more fair to say "Yes" than "No" (or at least something like "Yes-").

In general as with GitLab you can easily and automatically mirror any repo on GitHub or elsewhere, I don't think it is a big problem to have to use GitLab, if we want GitLab CI.

@victorb
Copy link
Member

victorb commented Dec 12, 2016

@victorbjelkholm about GitLab CI you also say above "Can't find any ways of doing on-demand builds
though" but on https://gitlab.com/gitlab-org/gitlab-ce/pipelines for example there is a green "Run Pipeline" button.

Yeah, I should probably have clarified the columns before sharing the spreadsheet. I'll add some definitions. Gitlab CI is marked as can do on-demand builds but no parameterized ones.

About "Self Hosted", even if we would have to host GitLab, if we want GitLab CI, it seems more fair to say "Yes" than "No" (or at least something like "Yes-").

Sure, Gitlab we is self-hosted, my point was to evaluate the CI only. But yeah, you're right, and changed that.

In general as with GitLab you can easily and automatically mirror any repo on GitHub or elsewhere, I don't think it is a big problem to have to use GitLab, if we want GitLab CI.

Not sure it's a great idea to replicate all repositories to Gitlab (unless we want to commit to the full Gitlab ecosystem) just to be able to use the CI, which in general doesn't fit us anyways. At least that's the idea I got from trying to get into it and trying it out.

@victorb
Copy link
Member

victorb commented Dec 14, 2016

@ipfs/go-ipfs-team @ipfs/javascript-team
RFC, we need to figure out any concerns now, so we can continue moving forward.
I'll leave this for a week and if you have interest in the CI solution we
ultimately go with, please leave your feedback here.

Some things that would be good to hear from you

  • Concerns about things we cannot do with Jenkins?
  • Concerns in general about moving forward with Jenkins?
  • Reliable/Scalable enough
  • Would using Jenkins solve our problems? Problems listed in CI Infrastructure #100 (comment)

@Kubuxu
Copy link
Member

Kubuxu commented Dec 14, 2016

I don't think there is anything we could not do with Jenkins. My only thought right now is that I want us to stabilize on something.

@dignifiedquire
Copy link
Member

@victorbjelkholm one thing we were having issues with is having Chrome/Firefox using xvfb running on TeamCity. I would like to make sure that is addressed in whatever system we are moving to.

@Kubuxu
Copy link
Member

Kubuxu commented Dec 14, 2016

There is no way around it no matter which runner we use I think.I f it is still a problem I can promise to take a look at it.

@Kubuxu
Copy link
Member

Kubuxu commented Dec 17, 2016

For future reference: https://wiki.jenkins-ci.org/display/JENKINS/TAP+Plugin

@chriscool
Copy link
Author

chriscool commented Dec 23, 2016

@ghost
Copy link

ghost commented Aug 6, 2018

We've had a nicely automated Jenkins instance for a while now at https://ci.ipfs.team -- the code lives at https://github.com/ipfs/jenkins

@ghost ghost closed this as completed Aug 6, 2018
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants