-
Notifications
You must be signed in to change notification settings - Fork 166
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds more concrete steps to the onboarding guide for the WG. This is updated with the information I used to onboard @mmarchini and @LucaLanziani. PR-URL: #1363 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Matheus Marchini <matheus@sthima.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luca Lanziani <luca@lanziani.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: George Adams <george.adams@uk.ibm.com> Reviewed-By: João Reis <reis@janeasystems.com> Reviewed-By: Rod Vagg <rod@vagg.org>
- Loading branch information
Showing
1 changed file
with
52 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,69 @@ | ||
# Node.js build WG onboarding | ||
|
||
This document outlines what things future members of the build WG should be | ||
acquainted with. It might be expanded into additional documentation down | ||
the road. | ||
This document is an outline of the things we tell new Build WG members at their | ||
onboarding session. | ||
|
||
### General information | ||
### Before the onboarding session | ||
|
||
- Responsibilities | ||
- Members/"who does what"/interest areas | ||
- Technologies and software in use | ||
* Email the new member and obtain their public GPG key | ||
* Add them to the `test` group in `nodejs-private/secrets` | ||
* Add them to the `nodejs/build` and `nodejs-private/build` GitHub teams | ||
* Ask them to start looking over `services.md` and `jenkins-guide.md`, | ||
and to try and have any questions ready | ||
* Ask the onboardee to install: | ||
* Ruby and the `dotgpg` gem | ||
* Python 2.7 and Ansible | ||
|
||
### General information | ||
|
||
### CI/Jenkins | ||
* Responsibilities: The Build WG manages everything in | ||
[`doc/services.md`](doc/services.md) | ||
* Members/"who does what"/interest areas | ||
* Technologies and software in use | ||
|
||
- `nodejs/build` ci access | ||
- CI and CI-Release | ||
- Setting up a node | ||
- `iptables`/infra group | ||
- Jobs | ||
### CI/Jenkins | ||
|
||
* Public CI (ci.nodejs.org) | ||
* `nodejs/jenkins-admins` are administrators | ||
* Tests Node.js itself, and several other Foundation projects | ||
* Release CI (ci-release.nodejs.org) | ||
* `nodejs/jenkins-release-admins` are administrators | ||
* What creates and publishes all releases of Node.js | ||
|
||
### Secrets | ||
|
||
- Different access groups | ||
- Using dotGPG | ||
|
||
* All production secrets are stored in the `build` directory of the | ||
[`nodejs-private/secrets` repository][] | ||
* The access groups are explained in [`doc/access.md`](doc/access.md) | ||
* Say you want to decrypt the file `a.txt`, you'd run `dotgpg cat a.txt` | ||
* Follow the instructions in [`doc/ssh.md`](doc/ssh.md) to setup the secrets | ||
repo and SSH access locally | ||
|
||
### Ansible | ||
|
||
- Build repo layout | ||
- Adding a node | ||
- Running the playbook | ||
- Common tasks | ||
|
||
|
||
### Build admin | ||
|
||
- Common tasks | ||
- Restarting a node/jenkins | ||
- Fixing issues (trailing node processes, etc) | ||
- Windows access | ||
|
||
* Ansible scripts are used to setup and maintain all machines | ||
* See [`doc/services.md`](doc/services.md) for which playbooks | ||
correspond to different machines | ||
* Go over [`ansible/README.md`](ansible/README.md) for Ansible setup | ||
instructions | ||
* Have the onboardee practice running the `jenkins/worker/create.yml` playbook | ||
on one of the machines in the test CI cluster | ||
* Windows access | ||
|
||
### Communication | ||
|
||
- GitHub: PR/Issue workflow: committing/merging | ||
- IRC | ||
- `ci-alert@` and general email | ||
- Build group meetings | ||
* GitHub Issues are used to manage tasks within the Build WG | ||
* Use GitHub Pull Requests to suggest, and then land, changes | ||
* Keep open for at least 48 hours during the week (72 hours on the weekend) | ||
* Get at least one approval from another WG member | ||
* Land PRs with the same commit metadata you'd use in `nodejs/node` | ||
* IRC (specifically `#node-build` is important for communicating with | ||
other Node.js project members, and how we receive many initial signals | ||
of downtime | ||
* IRC logs are maintained at http://logs.libuv.org/node-build | ||
* Build WG meetings are every 2-3 weeks, and you should try and attend | ||
as many as possible. The meetings are listed in the [Node.js | ||
Foundation calendar][]. | ||
|
||
[`nodejs-private/secrets` repository]: https://github.com/nodejs-private/secrets | ||
[Node.js Foundation calendar]: https://nodejs.org/calendar |