Use a temporary file for the release tarball copy

The pipe failed for me a couple of times in a row
This commit is contained in:
Johannes Zellner
2015-10-12 19:37:31 +02:00
parent cd9602e641
commit 51e2e5ec9c
+11 -5
View File
@@ -535,16 +535,20 @@ function stage(fromEnv, toEnv, stageVersion) {
var sourceTarballName = url.parse(fromReleases[latestReachableFromVersion].sourceTarballUrl).pathname.substr(1);
var upgrade = fromReleases[latestReachableFromVersion].upgrade;
var tmpFile = '/tmp/' + sourceTarballName;
console.log('Copying source code tarball %s to %s'.gray, sourceTarballName, toEnv.tag);
var cmd = util.format(
's3cmd get -v --ssl --access_key="%s" --secret_key="%s" "s3://%s/%s" - ' +
' | s3cmd put -v --ssl --add-header=x-amz-acl:authenticated-read --access_key="%s" --secret_key="%s" - "s3://%s/%s"',
fromEnv.accessKeyId, fromEnv.secretAccessKey, fromEnv.releasesBucket, sourceTarballName,
toEnv.accessKeyId, toEnv.secretAccessKey, toEnv.releasesBucket, sourceTarballName
console.log('Fetching source code tarball...'.gray);
var cmd = util.format('s3cmd get --force -v --ssl --access_key="%s" --secret_key="%s" "s3://%s/%s" %s',
fromEnv.accessKeyId, fromEnv.secretAccessKey, fromEnv.releasesBucket, sourceTarballName, tmpFile
);
execSync(cmd, { stdio: [ null, process.stdout, process.stderr ] } );
console.log('Uploading source code tarball...'.gray);
cmd = util.format('s3cmd put -v --ssl --add-header=x-amz-acl:authenticated-read --access_key="%s" --secret_key="%s" %s "s3://%s/%s"',
toEnv.accessKeyId, toEnv.secretAccessKey, tmpFile, toEnv.releasesBucket, sourceTarballName
);
execSync(cmd, { stdio: [ null, process.stdout, process.stderr ] } );
var strippedToReleases = stripUnreachable(toReleases);
@@ -561,6 +565,8 @@ function stage(fromEnv, toEnv, stageVersion) {
next: null
};
safe.fs.unlinkSync(tmpFile);
verifyAndUpload(toEnv, toReleases, function (error) {
if (error) return exit(error);