Skip to content

Commit

Permalink
Add preliminary UI deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
backspace committed Mar 21, 2024
1 parent 4b42538 commit b664176
Show file tree
Hide file tree
Showing 5 changed files with 137 additions and 3 deletions.
66 changes: 66 additions & 0 deletions .github/workflows/deploy-ui.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Deploy boxel-ui with ember

on:
workflow_call:
inputs:
environment:
required: true
type: string

permissions:
contents: read
id-token: write

jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
concurrency: deploy-ui-${{ inputs.environment }}
steps:
- uses: actions/checkout@v3

- name: Init
uses: ./.github/actions/init

- name: Set up env
env:
INPUT_ENVIRONMENT: ${{ inputs.environment }}
run: |
echo "AWS_REGION=us-east-1" >> $GITHUB_ENV
if [ "$INPUT_ENVIRONMENT" = "production" ]; then
echo "AWS_ROLE_ARN=arn:aws:iam::120317779495:role/boxel-ui" >> $GITHUB_ENV
echo "AWS_S3_BUCKET=cardstack-boxel-ui-production" >> $GITHUB_ENV
echo "AWS_CLOUDFRONT_DISTRIBUTION=E2DDEHLJXF5LQ8" >> $GITHUB_ENV
elif [ "$INPUT_ENVIRONMENT" = "staging" ]; then
echo "AWS_ROLE_ARN=arn:aws:iam::680542703984:role/boxel-ui" >> $GITHUB_ENV
echo "AWS_S3_BUCKET=cardstack-boxel-ui-staging" >> $GITHUB_ENV
echo "AWS_CLOUDFRONT_DISTRIBUTION=E1RYJDFNHAI7XA" >> $GITHUB_ENV
else
echo "unrecognized environment"
exit 1;
fi
# FIXME production distribution is incorrect
- name: Download dist
uses: actions/download-artifact@v3
with:
name: ui-dist
path: packages/ui/tmp/deploy-dist

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v3
with:
role-to-assume: ${{ env.AWS_ROLE_ARN }}
aws-region: us-east-1

- name: Deploy
run: pnpm deploy:boxel-ui ${{ inputs.environment }} --verbose
env:
EMBER_CLI_DEPLOY_REUSE_BUILD: "1"

- name: Send notification to Discord
uses: cardstack/gh-actions/discord-notification-deploy@main
with:
app: "boxel-ui"
status: ${{ job.status }}
environment: ${{ inputs.environment }}
webhook: ${{ secrets.DISCORD_WEBHOOK }}
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"deploy:boxel-host": "cd packages/boxel-ui/addon && pnpm build && cd ../../host && BASE_REALM_HOSTING_DISABLED=true NODE_OPTIONS='--max_old_space_size=8192' pnpm exec ember deploy",
"deploy:boxel-host:preview-staging": "cd packages/boxel-ui/addon && pnpm build && cd ../../host && BASE_REALM_HOSTING_DISABLED=true NODE_OPTIONS='--max_old_space_size=8192' pnpm exec ember deploy s3-preview-staging --verbose",
"deploy:boxel-host:preview-production": "cd packages/boxel-ui/addon && pnpm build && cd ../../host && BASE_REALM_HOSTING_DISABLED=true NODE_OPTIONS='--max_old_space_size=8192' pnpm exec ember deploy s3-preview-production --verbose",
"deploy:boxel-ui": "cd packages/boxel-ui/addon && pnpm build && cd ../test-app && pnpm exec ember deploy",
"lint": "pnpm run --filter './packages/**' --if-present -r lint",
"lint:fix": "pnpm run --filter './packages/**' --if-present -r lint:fix"
},
Expand Down
43 changes: 43 additions & 0 deletions packages/boxel-ui/test-app/config/deploy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/* eslint-env node */

module.exports = function (deployTarget) {
let ENV = {
pipeline: {
activateOnDeploy: true,
},
plugins: ['build', 'smart-compress', 'revision-data', 's3', 'cloudfront'],
build: {},
s3: {
allowOverwrite: true,
bucket: process.env.AWS_S3_BUCKET,
region: process.env.AWS_REGION,
filePattern: '**/*',
},
cloudfront: {
objectPaths: ['/*'],
distribution: process.env.AWS_CLOUDFRONT_DISTRIBUTION,
},
};

if (deployTarget === 'staging') {
ENV.build.environment = 'production';
}

if (deployTarget === 'production') {
ENV.build.environment = 'production';
}

if (deployTarget === 'build-only') {
ENV.build.environment = 'production';
ENV.plugins = ['build'];
}

if (
deployTarget === 's3-preview-staging' ||
deployTarget === 's3-preview-production'
) {
ENV.s3.prefix = process.env.PR_BRANCH_NAME;
}

return ENV;
};
6 changes: 6 additions & 0 deletions packages/boxel-ui/test-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@
"ember-auto-import": "^2.6.3",
"ember-cli": "^4.12.1",
"ember-cli-babel": "^8.2.0",
"ember-cli-deploy": "^1.0.2",
"ember-cli-deploy-build": "^2.0.0",
"ember-cli-deploy-cloudfront": "^5.0.0",
"ember-cli-deploy-revision-data": "^2.0.0",
"ember-cli-deploy-s3": "^3.1.0",
"ember-cli-deploy-smart-compress": "^2.0.0",
"ember-cli-dependency-checker": "^3.3.1",
"ember-cli-htmlbars": "^6.3.0",
"ember-cli-inject-live-reload": "^2.1.0",
Expand Down
24 changes: 21 additions & 3 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit b664176

Please sign in to comment.