GithubHelp home page GithubHelp logo

build's Introduction

Node Test and Build Infrastructure

![Gitter](https://badges.gitter.im/Join Chat.svg)

Wut?

This repository contains information used to set up and maintain the io.js and libuv CI infrastructure. It is intended to be open and transparent, if you see any relevant information missing please open an issue.

io.js and libuv are tested on a specific set of hardware / operating system / configuration combinations. Commits to the repository are tested on the full set while pull requests to the Node.js and libuv projects from non-core contributors are tested on a smaller, more secure subset. Build and test output is collected and success or fail status is reported back to GitHub.

Test Configurations

The set of build configurations is divided into three main categories:

  • All code: configurations where code compilation and test execution can be performed in an isolated and transient containerized environment. These configurations will allow the testing of untrusted code submitted by untrusted individuals to the main repositories via pull requests.

  • Core platforms: configurations deemed to be primary build targets of the io.js and libuv projects. Failures on these configurations will cause a failure report to GitHub on pull requests and commits. Core contributors should aim for all commits to be able to pass on these configurations. Additionally, these platforms will initially split up into two sub-categories:

    • Core & easy: configurations that are simple to set up and maintain.
    • Core & difficult: configurations that require a level of yak shaving to set up and maintain, such as very old versions of Linux (e.g. EL5) and very new tooling (e.g. XCode 6). This set of configurations may not be initially (and fully) available to the project as they may take time to set up in a reliable enough way.
  • Non-core platforms: configurations that are secondary build targets of the io.js and libuv projects. These platforms are of interest to the community and core contributors will be given insight to the success of their commits on these platforms but failure will be reported as advisory-only. However, it is expected that project releases will pass on all of these platforms.

Configurations: All code

All commits and pull requests will be submitted for compilation and execution of the test-simple test suite on the following platforms:

  • Containerized 64bit image of the current oldest Ubuntu LTS Release (10.04, Lucid Lynx)
  • Containerized 64bit image of the current latest Ubuntu LTS Release (14.04, Trusty Tahr)

Configurations: Core & easy

Additionally, all commits by core contributors will be submitted for compilation and execution of the test-all test suite on the following platforms:

  • CentOS 6 64-bit (EL6)
  • CentOS 6 32-bit (EL6)
  • CentOS 7 64-bit (EL7)
  • Ubuntu 10.04 LTS (Lucid Lynx) 64-bit
  • Ubuntu 10.04 LTS (Lucid Lynx) 32-bit
  • Ubuntu 12.04 LTS (Precise Pangolin) 64-bit
  • Ubuntu 12.04 LTS (Precise Pangolin) 32-bit
  • Ubuntu 14.04 LTS (Trusty Tahr) 64-bit
  • Ubuntu 14.04 LTS (Trusty Tahr) 32-bit
  • Debian stable (wheezy) 64-bit
  • Debian stable (wheezy) 32-bit
  • Windows Server 2008 R2 + Visual C++ 2012 64-bit
  • Windows Server 2008 R2 + Visual C++ 2012 32-bit
  • Windows Server 2012 R2 + Visual C++ 2013 64-bit
  • Windows Server 2012 R2 + Visual C++ 2013 32-bit
  • Mac OS X 10.8 (Mountain Lion) + XCode 5
  • Mac OS X 10.9 (Mavericks) + XCode 5

Configurations: Core & difficult

The following platforms will eventually be included in the "Core" set when properly stabilized as build platforms (i.e. the yaks are bald):

  • CentOS 5 64-bit (EL5)
  • CentOS 5 32-bit (EL5)
  • SmartOS
  • ARMv6 32-bit (Linux)
  • ARMv7 32-bit (Linux)
  • ARMv8 32-bit (Linux, one day, when suitable hardware & OS is available)
  • ARMv8 64-bit (Linux, one day, when suitable hardware & OS is available)
  • Ubuntu 14.10 (Utopic Unicorn) 64-bit (preferably prior to official release)
  • Mac OS X 10.10 (Yosemite) + XCode 6
  • PowerPC LE (Linux)
  • PowerPC BE (Linux)
  • AIX

Configurations: Non-core

The following platforms will eventually be included in the build and test-all set for core-contributors but failure will be advisory-only as they do not constitute core release targets.

  • FreeBSD stable/9 (maybe)
  • FreeBSD stable/10
  • MinGW 32-bit
  • MinGW 64-bit

CI Software

Build and test orchestration is performed by Jenkins. You can find a summary of build status here.

Our ambition is to invest in io.js-specific CI infrastructure and tooling while leaning on existing, proven technologies where appropriate. We hope to slowly replace Jenkins as orchestrator and build-slaves throughout our CI ecosystem.

Hardware Sponsors

The following companies are contributing hardware to this project:

People

build's People

Contributors

fhemberger avatar fishrock123 avatar gitter-badger avatar jbergstroem avatar joaocgreis avatar mhdawson avatar mikeal avatar rvagg avatar snostorm avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.