mirror of
https://github.com/cypress-io/cypress.git
synced 2026-01-03 21:19:44 -06:00
* set set-next-ci-version script command * use current package.json version when asking for next one * showing actual error response from buildkite * rename .aws-credentials.json to just aws-credentials.json file * rename aws_credentials_json on appveyor
214 lines
4.4 KiB
CoffeeScript
214 lines
4.4 KiB
CoffeeScript
_ = require("lodash")
|
||
fs = require("fs-extra")
|
||
glob = require("glob")
|
||
Promise = require("bluebird")
|
||
inquirer = require("inquirer")
|
||
la = require("lazy-ass")
|
||
check = require("check-more-types")
|
||
path = require("path")
|
||
|
||
glob = Promise.promisify(glob)
|
||
|
||
prompt = (questions) ->
|
||
Promise.resolve(inquirer.prompt(questions))
|
||
|
||
fs = Promise.promisifyAll(fs)
|
||
|
||
getZipFile = ->
|
||
[{
|
||
name: "zipFile"
|
||
type: "string"
|
||
default: "cypress.zip"
|
||
message: "Which zip file should we upload?"
|
||
}]
|
||
|
||
getPlatformQuestion = ->
|
||
[{
|
||
name: "platform"
|
||
type: "list"
|
||
message: "Which OS should we deploy?"
|
||
choices: [{
|
||
name: "Mac"
|
||
value: "darwin"
|
||
},{
|
||
name: "Linux"
|
||
value: "linux"
|
||
}, {
|
||
name: "Windows",
|
||
value: "win32"
|
||
}]
|
||
}]
|
||
|
||
getQuestions = (version) ->
|
||
[{
|
||
name: "publish"
|
||
type: "list"
|
||
message: "Publish a new version? (currently: #{version})"
|
||
choices: [{
|
||
name: "Yes: set a new version and deploy new version."
|
||
value: true
|
||
},{
|
||
name: "No: just override the current deploy’ed version."
|
||
value: false
|
||
}]
|
||
},{
|
||
name: "version"
|
||
type: "input"
|
||
message: "Bump version to...? (currently: #{version})"
|
||
default: ->
|
||
a = version.split(".")
|
||
v = a[a.length - 1]
|
||
v = Number(v) + 1
|
||
a.splice(a.length - 1, 1, v)
|
||
a.join(".")
|
||
when: (answers) ->
|
||
answers.publish
|
||
}]
|
||
|
||
getReleases = (releases) ->
|
||
[{
|
||
name: "release"
|
||
type: "list"
|
||
message: "Release which version?"
|
||
choices: _.map releases, (r) ->
|
||
{
|
||
name: r
|
||
value: r
|
||
}
|
||
}]
|
||
|
||
getNextVersion = ({ version } = {}) ->
|
||
if not version
|
||
version = require(path.join(__dirname, "..", "..", "package.json")).version
|
||
|
||
message = "Bump next version to...? (currently: #{version})"
|
||
defaultVersion = () ->
|
||
a = version.split(".")
|
||
v = a[a.length - 1]
|
||
v = Number(v) + 1
|
||
a.splice(a.length - 1, 1, v)
|
||
a.join(".")
|
||
|
||
[{
|
||
name: "nextVersion"
|
||
type: "input"
|
||
message: message
|
||
default: defaultVersion
|
||
}]
|
||
|
||
getVersions = (releases) ->
|
||
[{
|
||
name: "version"
|
||
type: "list"
|
||
message: "Bump to which version?"
|
||
choices: _.map releases, (r) ->
|
||
{
|
||
name: r
|
||
value: r
|
||
}
|
||
}]
|
||
|
||
getBumpTasks = ->
|
||
[{
|
||
name: "task"
|
||
type: "list"
|
||
message: "Which bump task?"
|
||
choices: [{
|
||
name: "Bump Cypress Binary Version for all CI providers"
|
||
value: "version"
|
||
},{
|
||
name: "Run All Projects for all CI providers"
|
||
value: "run"
|
||
}]
|
||
}]
|
||
|
||
getCommitVersion = (version) ->
|
||
[{
|
||
name: "commit"
|
||
type: "list"
|
||
message: "Commit this new version to git? (currently: #{version})"
|
||
choices: [{
|
||
name: "Yes: commit and push this new release version."
|
||
value: true
|
||
},{
|
||
name: "No: do not commit."
|
||
value: false
|
||
}]
|
||
}]
|
||
|
||
deployNewVersion = ->
|
||
fs.readJsonAsync("./package.json")
|
||
.then (json) =>
|
||
prompt(getQuestions(json.version))
|
||
.then (answers) ->
|
||
## set the new version if we're publishing!
|
||
## update our own local package.json as well
|
||
if answers.publish
|
||
# @updateLocalPackageJson(answers.version, json).then ->
|
||
answers.version
|
||
else
|
||
json.version
|
||
|
||
whichZipFile = ->
|
||
prompt(getZipFile())
|
||
.get("zipFile")
|
||
|
||
whichVersion = (distDir) ->
|
||
## realpath returns the absolute full path
|
||
glob("*/package.json", {cwd: distDir, realpath: true})
|
||
.map (pkg) ->
|
||
fs.readJsonAsync(pkg)
|
||
.get("version")
|
||
.then (versions) ->
|
||
versions = _.uniq(versions)
|
||
|
||
prompt(getVersions(versions))
|
||
.get("version")
|
||
|
||
whichRelease = (distDir) ->
|
||
## realpath returns the absolute full path
|
||
glob("*/package.json", {cwd: distDir, realpath: true})
|
||
.map (pkg) =>
|
||
fs.readJsonAsync(pkg)
|
||
.get("version")
|
||
.then (versions) =>
|
||
versions = _.uniq(versions)
|
||
|
||
prompt(getReleases(versions))
|
||
.get("release")
|
||
|
||
whichPlatform = ->
|
||
prompt(getPlatformQuestion())
|
||
.get("platform")
|
||
|
||
whichBumpTask = ->
|
||
prompt(getBumpTasks())
|
||
.get("task")
|
||
|
||
nextVersion = (version) ->
|
||
|
||
prompt(getNextVersion(version))
|
||
.get("nextVersion")
|
||
|
||
toCommit = ({ version }) ->
|
||
prompt(getCommitVersion(version))
|
||
.get("commit")
|
||
|
||
module.exports = {
|
||
toCommit
|
||
getZipFile
|
||
getPlatformQuestion
|
||
getQuestions
|
||
getReleases
|
||
getVersions
|
||
getBumpTasks
|
||
deployNewVersion
|
||
nextVersion
|
||
whichZipFile
|
||
whichVersion
|
||
whichRelease
|
||
whichPlatform
|
||
whichBumpTask
|
||
|
||
}
|