Merge pull request #13629 from electron/use-dot-env
docs: use .env (and .env.example) for tokens used in release
This commit is contained in:
commit
05538aa32c
7 changed files with 23 additions and 12 deletions
7
.env.example
Normal file
7
.env.example
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# These env vars are only necessary for creating Electron releases.
|
||||||
|
# See docs/development/releasing.md
|
||||||
|
|
||||||
|
APPVEYOR_TOKEN=
|
||||||
|
CIRCLE_TOKEN=
|
||||||
|
ELECTRON_GITHUB_TOKEN=
|
||||||
|
VSTS_TOKEN=
|
|
@ -8,11 +8,10 @@ upload an Electron release. Contact a team member for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
There are a handful of `*_TOKEN` environment variables needed by the release
|
There are a handful of `*_TOKEN` environment variables needed by the release
|
||||||
scripts. Once you've generated these per-user tokens, you may want to keep
|
scripts:
|
||||||
them in a local file that you can `source` when starting a release.
|
|
||||||
* `ELECTRON_GITHUB_TOKEN`:
|
* `ELECTRON_GITHUB_TOKEN`:
|
||||||
Create as described at https://github.com/settings/tokens/new,
|
Create this by visiting https://github.com/settings/tokens/new?scopes=repo
|
||||||
giving the token repo access scope.
|
|
||||||
* `APPVEYOR_TOKEN`:
|
* `APPVEYOR_TOKEN`:
|
||||||
Create a token from https://windows-ci.electronjs.org/api-token
|
Create a token from https://windows-ci.electronjs.org/api-token
|
||||||
If you don't have an account, ask a team member to add you.
|
If you don't have an account, ask a team member to add you.
|
||||||
|
@ -26,6 +25,11 @@ with the scope of `Build (read and execute)`.
|
||||||
* `ELECTRON_S3_SECRET_KEY`:
|
* `ELECTRON_S3_SECRET_KEY`:
|
||||||
If you don't have these, ask a team member to help you.
|
If you don't have these, ask a team member to help you.
|
||||||
|
|
||||||
|
Once you've generated these tokens, put them in a `.env` file in the root directory
|
||||||
|
of the project. This file is gitignored, and will be loaded into the
|
||||||
|
environment by the release scripts.
|
||||||
|
|
||||||
|
|
||||||
## Determine which branch to release from
|
## Determine which branch to release from
|
||||||
|
|
||||||
- **If releasing beta,** run the scripts below from `master`.
|
- **If releasing beta,** run the scripts below from `master`.
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
require('dotenv-safe').load()
|
||||||
|
|
||||||
const assert = require('assert')
|
const assert = require('assert')
|
||||||
const request = require('request')
|
const request = require('request')
|
||||||
const buildAppVeyorURL = 'https://windows-ci.electronjs.org/api/builds'
|
const buildAppVeyorURL = 'https://windows-ci.electronjs.org/api/builds'
|
||||||
|
@ -44,7 +46,6 @@ async function makeRequest (requestOptions, parseResponse) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function circleCIcall (buildUrl, targetBranch, job, options) {
|
async function circleCIcall (buildUrl, targetBranch, job, options) {
|
||||||
assert(process.env.CIRCLE_TOKEN, 'CIRCLE_TOKEN not found in environment')
|
|
||||||
console.log(`Triggering CircleCI to run build job: ${job} on branch: ${targetBranch} with release flag.`)
|
console.log(`Triggering CircleCI to run build job: ${job} on branch: ${targetBranch} with release flag.`)
|
||||||
let buildRequest = {
|
let buildRequest = {
|
||||||
'build_parameters': {
|
'build_parameters': {
|
||||||
|
@ -77,7 +78,6 @@ async function circleCIcall (buildUrl, targetBranch, job, options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildAppVeyor (targetBranch, options) {
|
function buildAppVeyor (targetBranch, options) {
|
||||||
assert(process.env.APPVEYOR_TOKEN, 'APPVEYOR_TOKEN not found in environment')
|
|
||||||
const validJobs = Object.keys(appVeyorJobs)
|
const validJobs = Object.keys(appVeyorJobs)
|
||||||
if (options.job) {
|
if (options.job) {
|
||||||
assert(validJobs.includes(options.job), `Unknown AppVeyor CI job name: ${options.job}. Valid values are: ${validJobs}.`)
|
assert(validJobs.includes(options.job), `Unknown AppVeyor CI job name: ${options.job}. Valid values are: ${validJobs}.`)
|
||||||
|
@ -139,7 +139,6 @@ async function buildVSTS (targetBranch, options) {
|
||||||
assert(vstsJobs.includes(options.job), `Unknown VSTS CI job name: ${options.job}. Valid values are: ${vstsJobs}.`)
|
assert(vstsJobs.includes(options.job), `Unknown VSTS CI job name: ${options.job}. Valid values are: ${vstsJobs}.`)
|
||||||
}
|
}
|
||||||
console.log(`Triggering VSTS to run build on branch: ${targetBranch} with release flag.`)
|
console.log(`Triggering VSTS to run build on branch: ${targetBranch} with release flag.`)
|
||||||
assert(process.env.VSTS_TOKEN, 'VSTS_TOKEN not found in environment')
|
|
||||||
let environmentVariables = {}
|
let environmentVariables = {}
|
||||||
|
|
||||||
if (!options.ghRelease) {
|
if (!options.ghRelease) {
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
require('dotenv-safe').load()
|
||||||
|
|
||||||
const GitHub = require('github')
|
const GitHub = require('github')
|
||||||
const github = new GitHub()
|
const github = new GitHub()
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
require('dotenv-safe').load()
|
||||||
require('colors')
|
require('colors')
|
||||||
const args = require('minimist')(process.argv.slice(2), {
|
const args = require('minimist')(process.argv.slice(2), {
|
||||||
boolean: ['automaticRelease', 'notesOnly', 'stable']
|
boolean: ['automaticRelease', 'notesOnly', 'stable']
|
||||||
})
|
})
|
||||||
const assert = require('assert')
|
|
||||||
const ciReleaseBuild = require('./ci-release-build')
|
const ciReleaseBuild = require('./ci-release-build')
|
||||||
const { execSync } = require('child_process')
|
const { execSync } = require('child_process')
|
||||||
const fail = '\u2717'.red
|
const fail = '\u2717'.red
|
||||||
|
@ -19,7 +19,6 @@ const versionType = args._[0]
|
||||||
// TODO (future) automatically determine version based on conventional commits
|
// TODO (future) automatically determine version based on conventional commits
|
||||||
// via conventional-recommended-bump
|
// via conventional-recommended-bump
|
||||||
|
|
||||||
assert(process.env.ELECTRON_GITHUB_TOKEN, 'ELECTRON_GITHUB_TOKEN not found in environment')
|
|
||||||
if (!versionType && !args.notesOnly) {
|
if (!versionType && !args.notesOnly) {
|
||||||
console.log(`Usage: prepare-release versionType [major | minor | patch | beta]` +
|
console.log(`Usage: prepare-release versionType [major | minor | patch | beta]` +
|
||||||
` (--stable) (--notesOnly) (--automaticRelease) (--branch)`)
|
` (--stable) (--notesOnly) (--automaticRelease) (--branch)`)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
require('dotenv-safe').load()
|
||||||
require('colors')
|
require('colors')
|
||||||
const args = require('minimist')(process.argv.slice(2))
|
const args = require('minimist')(process.argv.slice(2))
|
||||||
const assert = require('assert')
|
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
const { execSync } = require('child_process')
|
const { execSync } = require('child_process')
|
||||||
const GitHub = require('github')
|
const GitHub = require('github')
|
||||||
|
@ -18,8 +18,6 @@ const temp = require('temp').track()
|
||||||
const { URL } = require('url')
|
const { URL } = require('url')
|
||||||
let failureCount = 0
|
let failureCount = 0
|
||||||
|
|
||||||
assert(process.env.ELECTRON_GITHUB_TOKEN, 'ELECTRON_GITHUB_TOKEN not found in environment')
|
|
||||||
|
|
||||||
const github = new GitHub({
|
const github = new GitHub({
|
||||||
followRedirects: false
|
followRedirects: false
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
require('dotenv-safe').load()
|
||||||
|
|
||||||
const GitHub = require('github')
|
const GitHub = require('github')
|
||||||
const github = new GitHub()
|
const github = new GitHub()
|
||||||
github.authenticate({type: 'token', token: process.env.ELECTRON_GITHUB_TOKEN})
|
github.authenticate({type: 'token', token: process.env.ELECTRON_GITHUB_TOKEN})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue