Shared Multi Step Form for Object Storage Connectors (#8467) #7256
This file contains hidden or 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: | |
| tags: | |
| - "v*" | |
| branches: | |
| - "release**" | |
| push: | |
| tags: | |
| - "v*" | |
| 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: | |
| validate-sequential: | |
| 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: Check Admin Migrations | |
| run: | | |
| ./scripts/check_migrations.sh admin/database/postgres/migrations | |
| - name: Check Runtime Migrations | |
| run: | | |
| ./scripts/check_migrations.sh runtime/drivers/sqlite/migrations | |
| 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 | |
| needs: validate-sequential | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up NodeJS | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - 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_POSTHOG_API_KEY: "phc_4qnfUotXUuevk2zJN8ei8HgKXMynddEMI0wPI9XwzlS" | |
| 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/[email protected] | |
| 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 }} |