add purge-version --version command, close #549 (#555)

This commit is contained in:
Gleb Bahmutov
2017-10-04 15:45:57 +00:00
committed by GitHub
parent 1ad8899cdd
commit 56328d5200
5 changed files with 54 additions and 14 deletions
+33
View File
@@ -6,7 +6,9 @@ check = require("check-more-types")
cp = require("child_process")
fs = require("fs")
os = require("os")
Promise = require("bluebird")
{configFromEnvOrJsonFile, filenameToShellVariable} = require('@cypress/env-or-json-file')
konfig = require("../../../packages/server/lib/konfig")
getS3Credentials = () ->
key = path.join('scripts', 'binary', 'support', '.aws-credentials.json')
@@ -58,6 +60,7 @@ makeCloudflarePurgeCommand = (url) ->
else
throw new Error("Cannot form Cloudflare purge command without credentials")
# purges a given url from Cloudflare
purgeCache = (url) ->
la(check.url(url), "missing url to purge", url)
@@ -72,6 +75,34 @@ purgeCache = (url) ->
console.log("#purgeCache: #{url}")
resolve()
getDestktopUrl = (version, osName, zipName) ->
url = [konfig("cdn_url"), "desktop", version, osName, zipName].join("/")
url
# purges desktop application url from Cloudflare cache
purgeDesktopAppFromCache = ({version, platform, zipName}) ->
la(check.unemptyString(version), "missing desktop version", version)
la(check.unemptyString(platform), "missing platform", platform)
la(check.unemptyString(zipName), "missing zip filename")
la(check.extension("zip", zipName),
"zip filename should end with .zip", zipName)
osName = getUploadNameByOs(platform)
la(check.unemptyString(osName), "missing osName", osName)
url = getDestktopUrl(version, osName, zipName)
purgeCache(url)
# purges links to desktop app for all platforms
# for a given version
purgeDesktopAppAllPlatforms = (version, zipName) ->
la(check.unemptyString(version), "missing desktop version", version)
la(check.unemptyString(zipName), "missing zipName", zipName)
platforms = ["darwin", "linux", "win32"]
console.log("purging all desktop links for version #{version} from Cloudflare")
Promise.mapSeries platforms, (platform) ->
purgeDesktopAppFromCache({version, platform, zipName})
getUploadNameByOs = (osName = os.platform()) ->
uploadNames = {
darwin: "osx64"
@@ -91,6 +122,8 @@ module.exports = {
getS3Credentials,
getPublisher,
purgeCache,
purgeDesktopAppFromCache,
purgeDesktopAppAllPlatforms,
getUploadNameByOs,
saveUrl
}