Skip to content

Release Candidate Deploy #30

Release Candidate Deploy

Release Candidate Deploy #30

name: Release Candidate Deploy
on:
workflow_run:
workflows: [CI]
types: [completed]
branches: [release-candidate]
workflow_dispatch: # manual trigger
jobs:
# runs if CI workflow was successful OR if this was manually triggered
on-success:
runs-on: ubuntu-latest
if: >
github.event_name == 'workflow_dispatch' ||
github.event.workflow_run.conclusion == 'success'
steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
with:
ref: release-candidate
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4
with:
node-version: "^20"
cache: yarn
cache-dependency-path: yarn.lock
- name: Setup environment
run: sudo apt-get install libelf1
- name: Install frontend dependencies
run: yarn install --immutable
- name: Build frontend
run: EMBEDLY_KEY=${{ secrets.EMBEDLY_KEY_RC }} NODE_ENV=production yarn build
- name: Upload frontend build to s3
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks
env:
AWS_S3_BUCKET: ol-mitopen-app-storage-rc
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_RC }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_RC }}
SOURCE_DIR: "frontends/mit-open/build" # optional: defaults to entire repository
DEST_DIR: "frontend" # This dir will get cluttered but it is okay for now
- uses: akhileshns/heroku-deploy@581dd286c962b6972d427fcf8980f60755c15520
with:
heroku_api_key: ${{ secrets.HEROKU_API_KEY }}
heroku_app_name: "mitopen-rc"
heroku_email: ${{ secrets.HEROKU_EMAIL }}
branch: release-candidate
# runs ONLY on a failure of the CI workflow
on-failure:
runs-on: ubuntu-latest
if: >
github.event_name == 'workflow_dispatch' ||
github.event.workflow_run.conclusion == 'failure'
steps:
- run: echo 'The triggering workflow failed'