Build and Deploy Cloud UI to Netlify #3158
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Deploy Cloud UI to Netlify | |
on: | |
create: | |
push: | |
tags: | |
- "**" | |
branches: | |
- "main" | |
- "release**" | |
paths: | |
- ".github/workflows/rill-ui.yml" | |
- "web-admin/**" | |
- "web-common/**" | |
- "netlify.toml" | |
workflow_dispatch: | |
inputs: | |
env: | |
description: "Environment" | |
required: true | |
default: "stage" | |
type: choice | |
options: | |
- stage | |
- prod | |
- test | |
env: | |
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} | |
jobs: | |
build: | |
# https://github.com/orgs/community/discussions/54860 | |
if: | | |
github.event_name == 'workflow_dispatch' || | |
github.event_name == 'push' || | |
(github.event_name == 'create' && | |
( startsWith(github.ref_name, 'release') || startsWith(github.ref, 'refs/tags/v') ) | |
) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Setup Env variables from Inputs for Prod | |
if: ( github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v') ) || ( github.event_name == 'workflow_dispatch' && inputs.env == 'prod' ) | |
run: |- | |
echo "NETLIFY_SITE_ID=afb26917-7a60-47d9-81dc-c0babbb0d9a9" >> $GITHUB_ENV | |
echo "DOMAIN=rilldata.com" >> $GITHUB_ENV | |
echo "RILL_VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV | |
- name: Setup Env variables from Inputs for Stage | |
if: ( (github.event_name == 'push' || github.event_name == 'create') && startsWith(github.ref_name, 'release') ) || ( github.event_name == 'workflow_dispatch' && inputs.env == 'stage' ) | |
run: |- | |
echo "NETLIFY_SITE_ID=e73ac785-882e-425a-8fc8-5432528bb374" >> $GITHUB_ENV | |
echo "DOMAIN=rilldata.io" >> $GITHUB_ENV | |
echo "RILL_VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV | |
- name: Setup Env variables from Inputs for Test | |
if: ( github.event_name == 'push' && startsWith(github.ref_name, 'main') ) || ( github.event_name == 'workflow_dispatch' && inputs.env == 'test' ) | |
run: |- | |
echo "NETLIFY_SITE_ID=ad7b8d67-9b24-4b2a-8985-1a80b7b0ab11" >> $GITHUB_ENV | |
echo "DOMAIN=rilldata.in" >> $GITHUB_ENV | |
echo "RILL_VERSION=${GITHUB_SHA}" >> $GITHUB_ENV | |
- name: Build Cloud UI | |
run: |- | |
npm install | |
npm run build -w web-admin | |
env: | |
RILL_UI_PUBLIC_RILL_ADMIN_URL: https://admin.${{ env.DOMAIN }} | |
RILL_UI_PUBLIC_PYLON_APP_ID: "26a0fdd2-3bd3-41e2-82bc-1b35a444729f" | |
RILL_UI_PUBLIC_VERSION: ${{ env.RILL_VERSION }} | |
- name: Deploy Cloud UI to Netlify ui.${{ env.DOMAIN }} - version ${{ env.RILL_VERSION }} | |
uses: nwtgck/actions-netlify@v3.0 | |
with: | |
publish-dir: ./web-admin/build | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
deploy-message: "Cloud-admin ${{ github.ref_name }} deployed to ui.${{ env.DOMAIN }}" | |
production-deploy: true | |
enable-pull-request-comment: false | |
enable-commit-comment: true | |
overwrites-pull-request-comment: true | |
netlify-config-path: ./netlify.toml | |
timeout-minutes: 1 | |
- name: Notify Slack | |
uses: ravsamhq/notify-slack-action@v2 | |
if: always() | |
with: | |
status: ${{ job.status }} | |
notification_title: "{workflow} has {status_message}" | |
message_format: "{emoji} *{workflow}* {status_message} in <{repo_url}|{repo}>" | |
footer: "Linked Repo <{repo_url}|{repo}>" | |
notify_when: "failure" | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_ANNOUNCE_DD }} |