Skip to content

Commit

Permalink
chore: #2519 deprecated old script deploy dev
Browse files Browse the repository at this point in the history
  • Loading branch information
duong-se committed Aug 31, 2020
1 parent 03d4dd9 commit 15b33e5
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 147 deletions.
16 changes: 1 addition & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,6 @@ jobs:
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{secrets.AWS_REGION}}

- name: Configure AWS credentials if staging environment
uses: aws-actions/configure-aws-credentials@v1
if: ${{ github.event.client_payload.environment == 'staging' }}
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{secrets.AWS_REGION}}

- name: Configure AWS credentials if production environment
uses: aws-actions/configure-aws-credentials@v1
if: ${{ github.event.client_payload.environment == 'production' }}
Expand All @@ -61,13 +53,7 @@ jobs:
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_PROD }}
aws-region: ${{secrets.AWS_REGION}}

- name: Fetch config if staging
if: ${{ github.event.client_payload.environment == 'staging' }}
run: |
yarn fetch-config --name production
- name: Fetch config if not staging
if: ${{ github.event.client_payload.environment != 'staging' }}
- name: Fetch config
run: |
yarn fetch-config --name ${{ github.event.client_payload.environment }}
Expand Down
25 changes: 3 additions & 22 deletions scripts/release/release.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
const {
releaseWebApp,
releaseNewWebApp,
sendMessageToSlack,
releaseNpm,
releaseServerless,
BUCKET_NAMES,
SERVERLESS_APPS,
NPM_APPS,
WEB_APPS,
Expand All @@ -15,8 +13,6 @@ const release = async () => {
const env = args[0]
const packageName = args[1]
const currentTag = args[2]
// Get Bucket name
const bucketName = BUCKET_NAMES && BUCKET_NAMES[env] && BUCKET_NAMES[env][packageName]
const isValidParams = !!packageName && !!currentTag
if (!isValidParams) {
console.error('release params is not valid for packageName or currentTag or previousTag')
Expand Down Expand Up @@ -48,21 +44,7 @@ const release = async () => {
console.error('release params is not valid for packageName or currentTag or previousTag')
process.exit(1)
}
releaseNewWebApp({ tagName: currentTag, packageName, env })
} catch (err) {
await sendMessageToSlack(`Deploy \`${packageName}\` version \`${currentTag}\` failed`)
throw new Error(err)
}
}

if (WEB_APPS.includes(packageName) && env === 'staging') {
try {
const isValidWebApp = isValidParams && !!env && !!bucketName
if (!isValidWebApp) {
console.error('release params is not valid for packageName or currentTag or previousTag')
process.exit(1)
}
releaseWebApp({ tagName: currentTag, bucketName, packageName, env })
releaseWebApp({ tagName: currentTag, packageName, env })
} catch (err) {
await sendMessageToSlack(`Deploy \`${packageName}\` version \`${currentTag}\` failed`)
throw new Error(err)
Expand All @@ -71,13 +53,12 @@ const release = async () => {

if (WEB_APPS.includes(packageName) && env === 'development') {
try {
const isValidWebApp = isValidParams && !!env && !!bucketName
const isValidWebApp = isValidParams && !!env
if (!isValidWebApp) {
console.error('release params is not valid for packageName or currentTag or previousTag')
process.exit(1)
}
releaseWebApp({ tagName: currentTag, bucketName, packageName, env })
releaseNewWebApp({ tagName: currentTag, packageName, env })
releaseWebApp({ tagName: currentTag, packageName, env })
} catch (err) {
await sendMessageToSlack(`Deploy \`${packageName}\` version \`${currentTag}\` failed`)
throw new Error(err)
Expand Down
113 changes: 3 additions & 110 deletions scripts/release/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,60 +100,14 @@ const runTestCyPress = async ({ packageName, tagName, env }) => {
await sendMessageToSlack(`Finish testing cypress for web app \`${packageName}\` with version \`${tagName}\``)
}

/**
* @deprecated
* This function will be remove after finish migration to new cloud
*/
const syncFromLocalDistToS3Bucket = ({ bucketName, packageName }) => {
try {
const distPath = `${process.cwd()}/packages/${packageName}/public/dist`
// cp all assert with cache-control 365 days exclude sw.js and index.html
const copyWithCache = execSync(
`aws s3 cp ${distPath} s3://${bucketName} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --recursive --exclude "index.html" --exclude "sw.js" --exclude "config.json" --cache-control "no-store"`,
).toString()
console.info(copyWithCache)

// cp index.html and sw.js with no-cache control
const copyWithNoCache = execSync(
`aws s3 cp ${distPath} s3://${bucketName} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --recursive --exclude "*" --include "sw.js" --include "index.html" --include "config.json"`,
).toString()
console.info(copyWithNoCache)
} catch (err) {
console.error('deployToS3', err)
throw new Error(err)
}
}

/**
* @deprecated
* This function will be remove after finish migration to new cloud
*/
const releaseWebApp = async ({ tagName, bucketName, packageName, env }) => {
// This is temporary fix for deployment to new prod and old prod env
if (env === 'staging') {
env = 'production'
}
try {
await extractTarFile({ tagName, packageName })
await copyConfig({ packageName })
await sendMessageToSlack(`Deploying for web app \`${packageName}\` with version \`${tagName}\``)
await syncFromLocalDistToS3Bucket({ bucketName, packageName })
await sendMessageToSlack(`Finish the deployment for web app \`${packageName}\` with version \`${tagName}\``)
await runTestCyPress({ packageName, tagName, env })
} catch (err) {
console.error('releaseWebApp', err)
throw new Error(err)
}
}

const releaseNewWebApp = async ({ tagName, packageName, env }) => {
const releaseWebApp = async ({ tagName, packageName, env }) => {
try {
await extractTarFile({ tagName, packageName })
await copyConfig({ packageName })
await runReleaseCommand({ packageName, tagName, env })
await runTestCyPress({ packageName, tagName, env })
} catch (err) {
console.error('releaseNewWebApp', err)
console.error('releaseWebApp', err)
throw new Error(err)
}
}
Expand Down Expand Up @@ -266,41 +220,6 @@ const getCommitLog = ({ currentTag, previousTag, packageName }) => {
return commitLog
}

const BUCKET_NAMES = {
staging: {
'admin-portal': 'reapit-admin-portal-prod',
'developer-portal': 'reapit-developer-portal-prod',
'aml-checklist': 'reapit-aml-checklist-prod',
'demo-site': 'reapit-demo-site-prod',
elements: 'reapit-elements-prod',
'geo-diary': 'reapit-geo-diary-prod',
'geo-diary-v2': 'reapit-geo-diary-v2-prod',
'lifetime-legal': 'reapit-lifetime-legal-prod',
marketplace: 'reapit-app-store-prod',
'site-builder': 'reapit-site-builder-prod',
'smb-onboarder': 'reapit-smb-prod',
'web-components': 'reapit-web-components-prod',
'elements-next': 'reapit-elements-next-prod',
'reapit-connect': 'reapit-reapit-connect-prod',
},
development: {
'admin-portal': 'reapit-admin-portal-dev',
'developer-portal': 'reapit-developer-portal-dev',
'aml-checklist': 'reapit-aml-checklist-dev',
'demo-site': 'reapit-demo-site',
elements: 'reapit-elements-dev',
'geo-diary': 'reapit-geo-diary-dev',
'geo-diary-v2': 'reapit-geo-diary-v2-dev',
'lifetime-legal': 'reapit-lifetime-legal-dev',
marketplace: 'reapit-app-store',
'site-builder': 'reapit-site-builder-dev',
'smb-onboarder': 'reapit-smb-prod',
'web-components': 'reapit-web-components',
'elements-next': 'reapit-elements-next-dev',
'reapit-connect': 'reapit-reapit-connect-dev',
},
}

const WEB_APPS = [
'admin-portal',
'developer-portal',
Expand Down Expand Up @@ -328,28 +247,6 @@ const SERVERLESS_APPS = [
...WEB_COMPONENTS_SERVERLESS_APPS,
]

const NEW_PROD_SERVERLESS_APPS = [
'cognito-custom-mail-lambda',
'deploy-slack-bot',
'graphql-server',
'web-components-config-server',
...WEB_COMPONENTS_SERVERLESS_APPS,
'admin-portal',
'developer-portal',
'aml-checklist',
'demo-site',
'elements',
'geo-diary',
'geo-diary-v2',
'lifetime-legal',
'marketplace',
'site-builder',
'smb-onboarder',
'web-components',
'elements-next',
'reapit-connect',
]

const NPM_APPS = [
'cognito-auth',
'config-manager',
Expand All @@ -365,19 +262,15 @@ const NPM_APPS = [
module.exports = {
removeUnuseChar,
getVersionTag,
syncFromLocalDistToS3Bucket,
releaseWebApp,
releaseServerless,
releaseNpm,
runCommand,
getRef,
sendMessageToSlack,
BUCKET_NAMES,
WEB_APPS,
SERVERLESS_APPS,
NPM_APPS,
NEW_PROD_SERVERLESS_APPS,
formatReleaseNote,
getCommitLog,
releaseNewWebApp,
releaseWebApp,
}

0 comments on commit 15b33e5

Please sign in to comment.