Awesome
<p align="center"><i><small>Some of the Node.js Build ARM resources: 3 generations of Raspberry Pi and other ARMv7 & ARM64 hardware</small></i></p>Node.js Build Working Group
Chat with us on Slack.
Purpose
The Node.js Build Working Group maintains and controls infrastructure used for continuous integration (CI), releases, benchmarks, web hosting (of nodejs.org and other Node.js web properties) and more.
Our mission is to provide Node.js Project and libuv with solid computing infrastructure in order to improve the quality of the software itself by targeting correctness, speed and compatibility and to ensure streamlined delivery of binaries and source code to end-users.
This repository contains information used to set up and maintain the various pieces of Node.js Project infrastructure managed by the Build Working Group. It is intended to be open and transparent, if you see any relevant information missing please open an issue. If you are interested in joining, please read GOVERNANCE.md to understand the process and reasoning we use for granting access to the resources we manage.
Build WG Members
<!-- ncu-team-sync.team(nodejs/build) -->- @abmusse - Abdirahim Musse
- @AshCripps - Ash Cripps
- @joaocgreis - João Reis
- @joyeecheung - Joyee Cheung
- @mhdawson - Michael Dawson
- @MoLow - Moshe Atlow
- @node-forward-build - node-forward build infrastructure
- @richardlau - Richard Lau
- @rvagg - Rod Vagg
- @ryanaslett - Ryan Aslett
- @StefanStojanovic - Stefan Stojanovic
- @sxa - Stewart X Addison
- @targos - Michaël Zasso
- @UlisesGascon - Ulises Gascón
Above list is manually synced with the gpg member list.
Infra Admins
<!-- ncu-team-sync.team(nodejs/build-infra) -->- @joaocgreis - João Reis
- @mhdawson - Michael Dawson
- @MoLow - Moshe Atlow
- @richardlau - Richard Lau
- @rvagg - Rod Vagg
- @ryanaslett - Ryan Aslett
- @StefanStojanovic - Stefan Stojanovic
- @sxa - Stewart X Addison
- @targos - Michaël Zasso
- @UlisesGascon - Ulises Gascón
Jenkins Admins
Admin access to https://ci.nodejs.org/.
<!-- ncu-team-sync.team(nodejs/jenkins-admins) -->- @AshCripps - Ash Cripps
- @joaocgreis - João Reis
- @joyeecheung - Joyee Cheung
- @mhdawson - Michael Dawson
- @MoLow - Moshe Atlow
- @node-forward-build - node-forward build infrastructure
- @richardlau - Richard Lau
- @rvagg - Rod Vagg
- @ryanaslett - Ryan Aslett
- @StefanStojanovic - Stefan Stojanovic
- @sxa - Stewart X Addison
- @targos - Michaël Zasso
- @UlisesGascon - Ulises Gascón
Release Admins
Access to release secrets.
- @AshCripps - Ash Cripps
- @joaocgreis - João Reis
- @mhdawson - Michael Dawson
- @MoLow - Moshe Atlow
- @richardlau - Richard Lau
- @rvagg - Rod Vagg
- @ryanaslett - Ryan Aslett
- @StefanStojanovic - Stefan Stojanovic
- @sxa - Stewart X Addison
- @targos - Michaël Zasso
- @UlisesGascon - Ulises Gascón
Above list is manually synced with the gpg member list.
Release Jenkins Admins
Admin access to https://ci-release.nodejs.org/.
<!-- ncu-team-sync.team(nodejs/jenkins-release-admins) -->- @AshCripps - Ash Cripps
- @joaocgreis - João Reis
- @mhdawson - Michael Dawson
- @MoLow - Moshe Atlow
- @node-forward-build - node-forward build infrastructure
- @richardlau - Richard Lau
- @rvagg - Rod Vagg
- @ryanaslett - Ryan Aslett
- @StefanStojanovic - Stefan Stojanovic
- @sxa - Stewart X Addison
- @targos - Michaël Zasso
- @UlisesGascon - Ulises Gascón
GitHub Bot Admins
<!-- ncu-team-sync.team(nodejs/github-bot) -->- @jbergstroem - Johan Bergström
- @joyeecheung - Joyee Cheung
- @phillipj - Phillip Johnsen
- @Starefossen - Hans Kristian Flaatten
If you are interested in joining the Build WG, or for more information about accesses and team roles see GOVERNANCE.md.
Emeriti
- @addaleax - Anna Henningsen
- @anonrig - Yagiz Nizipli
- @bnoordhuis - Ben Noordhuis
- @gibfahn - Gibson Fahnestock
- @gireeshpunathil - Gireesh Punathil
- @jbergstroem - Johan Bergström
- @LucaLanziani - Luca Lanziani
- @maclover7 - Jon Moss
- @mmarchini - mary marchini
- @MylesBorins - Myles Borins
- @phillipj - Phillip Johnsen
- @refack - Refael Ackermann (רפאל פלחי)
- @sam-github - Sam Roberts
- @Starefossen - Hans Kristian Flaatten
- @Trott - Rich Trott
Infrastructure Providers
The Node.js Project is proud to receive contributions from many companies, both in the form of monetary contributions in exchange for membership or in-kind contributions for required resources. The Build Working Group collaborates with the following companies who contribute various kinds of cloud and physical hardware to the Node.js project.
Tier-1 Providers
The Node.js Project's tier-1 infrastructure providers contribute the largest share of infrastructure to the Node.js project. Without these companies, the project would not be able to provide the quality, speed and availability of test coverage that it does today.
-
DigitalOcean: a popular cloud hosting service, provides a significant amount of the resources required to run the Node.js project including key CI infrastructure/servers required to host nodejs.org.
-
Rackspace: a popular managed cloud company, provides significant resources used to power much of the Node.js project's CI system, including key Windows compilation servers, along with additional services such as Mailgun for some nodejs.org and iojs.org email services.
Tier-2 Providers
The Node.js Project's tier-2 infrastructure providers fill essential gaps in architecture and operating system variations and shoulder some of the burden from the tier-1 providers, contributing to availability and speed in our CI system.
-
Microsoft: Provides Windows-related test infrastructure on Azure for the Node.js CI system.
-
Joyent: A private cloud infrastructure company, provides SmartOS and other test/build resources for the Node.js CI system, resources for backup of our critical infrastructure, redundancy for nodejs.org and or unencrypted.nodejs.org mirror.
-
IBM:
- IBM Cloud provides hardware for testing and benchmarking for the Node.js project's CI system.
- Via the Oregon State University Open Source Lab, provides PPC-based test and build infrastructure.
- Via the IBM LinuxOne(TM) Community Cloud, provides linuxOne based test and build infrastructure.
-
Scaleway: Scalable cloud platform designed for developers & growing companies, contributes key ARMv7 hardware for test and release builds for the Node.js CI system.
-
Cloudflare: CDN and internet traffic management provider, are responsible for providing fast and always-available access to nodejs.org.
-
ARM: Semiconductor intellectual property supplier, have donated ARMv8 / ARM64 hardware used by the Node.js CI system for build and testing Node.js.
-
Intel: "The world leader in silicon innovation," contributes hardware used for benchmarking in the Node.js project's CI system to advance and accelerate Node.js performance.
-
MacStadium: Managed hosting provider for Mac. Provides Mac hardware used for testing in the Node.js project's CI system.
-
Packet: Bare metal cloud for developers. Through their Works on Arm, Packet provides ARM64 build infrastructure and additional resources for powering our CI system.
Community Donations
From time to time, the Node.js Build Working group calls for, and receives donations of hardware in order to expand the breadth of the build and test infrastructure it maintains.
The Node.js Project would like to thank the following individuals and companies that have donated miscellaneous hardware:
- NodeSource for a Raspberry Pi B, a Raspberry Pi B+, a Raspberry Pi 2 B and an ODROID-XU3
- Andrew Chilton @chilts for a Raspberry Pi B
- Julian Duque @julianduque for a Beaglebone Black
- Andi Neck @andineck for 2 x Raspberry Pi B+
- Bryan English @bengl for 2 x Raspberry Pi B+
- Continuation Labs @continuationlabs for a Raspberry Pi B+
- C J Silverio @ceejbot for a Raspberry Pi B+ and a Raspberry Pi 2 B
- miniNodes for a Raspberry Pi B+ and a Raspberry Pi 2 B
- Simeon Vincent @svincent for 3 x Raspberry Pi 2 B
- Joey van Dijk @joeyvandijk and Techtribe for 2 x Raspberry Pi 2 B and an ODROID-U3+
- Matteo Collina @mcollina for a Raspberry Pi 2 B
- Sam Thompson @sambthompson for a Raspberry Pi 2 B
- Louis Center @louiscntr for a Raspberry Pi 2 B
- Dav Glass @davglass for 2 x ODROID-XU3, Raspberry Pi 1 B+, Raspberry Pi 3, power, networking and other miscellaneous equipment
- Tessel for a Tessel 2
- KahWee Teng @kahwee for a Raspberry Pi 3
- Chinmay Pendharkar @notthetup and Sayanee Basu @sayanee for a Raspberry Pi 3
- Michele Capra @piccoloaiutante for a Raspberry Pi 3
- Pivotal Agency for two Raspberry Pi 3's
- SecuroGroup for two Raspberry Pi 1 B+'s and two Raspberry Pi 3's
- William Kapke @williamkapke for three Raspberry Pi 3's and networking equipment
- Jonathan Barnett @indieisaconcept for a Raspberry Pi B+
- James Snell @jasnell for a Raspberry Pi 2
- Michael Dawson @mhdawson for a Raspberry Pi 1 B+
- Chris Lea @chrislea for a Raspberry Pi 1 B+
If you would like to donate hardware to the Node.js Project, please reach out to the Build Working Group, via the #nodejs-build channel on the OpenJS Foundation Slack instance or contact Rod Vagg directly. The Build Working Group reserves the right to choose what hardware is actively used and how it is used, donating hardware does not guarantee its use within the testing infrastructure as there are many other factors that must be considered. Some donated hardware, while not used actively in the CI infrastructure, is used from time to time for R&D purposes by the project.
CI Software
Build and test orchestration is performed by Jenkins.
- A summary of build and test jobs can be found at: https://ci.nodejs.org
- A listing of connected servers for testing, building and benchmarking can be found at: https://ci.nodejs.org/computer/
- Monitoring with Grafana: https://grafana.nodejs.org/
The Build WG will keep build configuration required for a release line for 6 months after the release goes End-of-Life, in case further build or test runs are required. After that the configuration will be removed.