https://github.com/nodejs/nodejs-nightly-builder
An application to trigger nightly builds of Node.js for distribution at nodejs.org _if_ there is new code available on a given branch
https://github.com/nodejs/nodejs-nightly-builder
node nodejs
Last synced: 9 months ago
JSON representation
An application to trigger nightly builds of Node.js for distribution at nodejs.org _if_ there is new code available on a given branch
- Host: GitHub
- URL: https://github.com/nodejs/nodejs-nightly-builder
- Owner: nodejs
- License: mit
- Created: 2016-10-08T10:46:07.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2024-12-21T07:54:26.000Z (over 1 year ago)
- Last Synced: 2025-09-24T00:32:24.842Z (10 months ago)
- Topics: node, nodejs
- Language: JavaScript
- Size: 13.7 KB
- Stars: 10
- Watchers: 28
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Governance: GOVERNANCE.md
Awesome Lists containing this project
README
# nodejs-nightly-builder
**An application to trigger nightly builds of Node.js for distribution at nodejs.org _if_ there is new code available on a given branch**
## Usage
```text
$ nodejs-nightly-builder [--type ] --ref --config [--force]
```
* **type**: `nightly` vs `next-nightly` is a remnant of io.js and not used in current Node.js builds, it is therefore optional and defaults to `nightly`.
* **ref**: normally points to a git branch, e.g. `heads/v6.x` or `heads/master`
* **force**: can force a build even if one is not strictly required
* **config**: a config file for finding and authorising access to the appropriate GitHub repo via the GitHub API. The config file is in JSON format and must contain the following entries:
- ***"githubOrg"*** (optional, defaults to "nodejs"): the GitHub org or user for the repository being checked
- ***"githubRepo"*** (optional, defaults to "node"): the GitHub repository name being checked
- ***"githubScheme"*** (optional, defaults to "https://github.com/"): the scheme for accessing the GitHub repository, including host and other components up to the "org/repo"
- ***"githubAuthUser"***: the user for which the GitHub API is being accessed by
- ***"githubAuthToken"***: the authentication token for accessing the API for the given user (e.g. obtained with https://github.com/rvagg/ghauth)
- ***"jenkinsToken"***: the token entered in the Jenkins job for building distributables, required to authenticate API triggered access
- ***"jenkinsJobUrl"***: URL of the job being accessed, as you would as a normal user, e.g. "https://ci.nodejs.org/job/node-release"
- ***"jenkinsCrumbUrl"***: the Jenkins API endpoint for obtaining a crumb for bypassing XSS checks during API access, e.g. "https://ci.nodejs.org/crumbIssuer/api/json"
The GitHub API is used to check HEAD commits which is why an authentication token is required.
When run, `nodejs-nightly-builder` will first check whether a build is required. It does this by checking the file at `https://nodejs.org/download/{type}/index.json`, where `type` is provided on the commandline, e.g. `https://nodejs.org/download/nightly/index.json`. Nightly builds contain a commit sha that can be decoded from their version string. The HEAD commit is also pulled from GitHub for the `ref` (branch) provided on the commandline. If the latest build does not match the HEAD commit, a new nightly build is required. Nightly builds are triggered with Jenkins.
-----------------------------------
Managed under the governance of the Node.js [Build Working Group](https://github.com/nodejs/build).
Copyright (c) 2016 Node.js Foundation. All rights reserved.
Licensed under MIT, see the LICENSE.md file for details