Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: #2519 deprecated old script deploy dev #2530

Merged
merged 1 commit into from
Aug 31, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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,
}