upload.js
1 const path = require('path'); 2 const { writeFileSync } = require('fs'); 3 4 const { 5 VERSION, 6 FLAVOR, 7 GIT_COMMIT, 8 GIT_COMMIT_SHORT, 9 LINUX_FILES, 10 WINDOWS_FILES, 11 OSX_FILES, 12 S3_BUCKET, 13 JENKINS_BUILD_ID, 14 ETH_SIGNING_KEY, 15 IS_CODE_SIGNING 16 } = require('./constants'); 17 18 const { 19 genSha512, 20 genFileList, 21 genCommitFilename, 22 genS3Url, 23 genManifest, 24 genManifestFile, 25 genManifestFilename, 26 genSignatureFile, 27 genSignatureFilename, 28 uploadToS3 29 } = require('./lib'); 30 31 const fileList = genFileList(WINDOWS_FILES, LINUX_FILES, OSX_FILES); 32 33 const manifest = genManifest( 34 fileList, 35 VERSION, 36 JENKINS_BUILD_ID, 37 GIT_COMMIT, 38 GIT_COMMIT_SHORT, 39 S3_BUCKET, 40 IS_CODE_SIGNING 41 ); 42 43 const manifestFile = genManifestFile(manifest); 44 const manifestFilename = genManifestFilename(FLAVOR, VERSION, GIT_COMMIT_SHORT, JENKINS_BUILD_ID); 45 const manifestFilePath = path.resolve(`./${manifestFilename}`); 46 const manifestS3Url = genS3Url(manifestFilename, GIT_COMMIT, S3_BUCKET); 47 48 // write manifest file 49 writeFileSync(manifestFilename, JSON.stringify(manifestFile, null, 2), 'utf8'); 50 51 const manifestHash = genSha512(manifestFilePath); 52 53 const signatureFile = genSignatureFile(manifestHash, ETH_SIGNING_KEY); 54 const signatureFilename = genSignatureFilename(FLAVOR, VERSION, GIT_COMMIT_SHORT, JENKINS_BUILD_ID); 55 const signatureFilePath = path.resolve(`./${signatureFilename}`); 56 const signatureS3Url = genS3Url(signatureFilename, GIT_COMMIT, S3_BUCKET); 57 58 // write signature file 59 writeFileSync(signatureFilePath, signatureFile, 'utf8'); 60 61 // upload all the things to S3 62 (async () => { 63 for (let fileInfo of manifest) { 64 const { fullPath, s3Url } = fileInfo; 65 await uploadToS3(fullPath, s3Url); 66 } 67 68 await uploadToS3(manifestFilePath, manifestS3Url); 69 await uploadToS3(signatureFilePath, signatureS3Url); 70 })();