UNPKG

cloudapp-cli

Version:

84 lines (70 loc) 1.83 kB
#!/usr/bin/env node const AdmZip = require("adm-zip"); const COS = require("cos-nodejs-sdk-v5"); const { program } = require("commander"); const uuid = require("../lib/uuid"); const { format } = require("../lib/date"); const { createClient } = require("../lib/capi"); const { getLocalDir, getPackageId } = require("../lib/pkg"); const { run } = require("../lib/verify"); const capi = createClient(); program.argument("[dir]", "云应用配置目录"); program.parse(process.argv); async function push() { const dir = program.args[0] || process.cwd(); const pkgId = getPackageId(dir); const localDir = getLocalDir(dir); // 压缩配置目录 // @ts-ignore const zip = new AdmZip(); zip.addLocalFolder(localDir); const devVersion = `dev_${format()}`; const fileKey = `${pkgId}/${devVersion}_${uuid()}.zip`; // 获取签名 const { Bucket, Region, Domain, Key, TmpSecretId, TmpSecretKey, SessionToken, ExpiredTime, StartTime, } = await capi.PreparePackageVersion({ FileKey: fileKey, PackageId: pkgId, }); const cos = new COS({ // Domain, getAuthorization: (_, callback) => { callback({ TmpSecretId, TmpSecretKey, SecurityToken: SessionToken, ExpiredTime, StartTime, }); }, }); await cos.putObject({ Bucket, Region, Key, Body: zip.toBuffer(), }); const { DevVersion } = await capi.CommitPackageVersion({ PackageId: pkgId, DevVersion: devVersion, Key, }); console.log(`+ ${pkgId}@${DevVersion}`); const isCiEnv = !!process.env.CI || !!process.env.QCI_VERSION || !!process.env.landun_env; if (!isCiEnv) { console.log( ` Install link: https://console.cloud.tencent.com/cloudapp/install/${pkgId}@${DevVersion}` ); } } run(push);