Trigger client integration only on approved PRs (#3632)
Co-authored-by: Nidhi <nidhi@appsmith.com> Co-authored-by: Nidhi <nidhi.nair93@gmail.com>
This commit is contained in:
parent
7316b84cc4
commit
52c7f5331a
115
.github/workflows/client-build.yml
vendored
Normal file
115
.github/workflows/client-build.yml
vendored
Normal file
|
|
@ -0,0 +1,115 @@
|
||||||
|
name: Appsmith Client Build Workflow
|
||||||
|
|
||||||
|
on:
|
||||||
|
# This line enables manual triggering of this workflow.
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
push:
|
||||||
|
branches: [release, master]
|
||||||
|
# Only trigger if files have changed in this specific path
|
||||||
|
paths:
|
||||||
|
- 'app/client/**'
|
||||||
|
- '!app/client/cypress/manual_TestSuite/**'
|
||||||
|
|
||||||
|
pull_request:
|
||||||
|
branches: [release, master]
|
||||||
|
paths:
|
||||||
|
- 'app/client/**'
|
||||||
|
- '!app/client/cypress/manual_TestSuite/**'
|
||||||
|
|
||||||
|
# Change the working directory for all the jobs in this workflow
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: app/client
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: app/client
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Checkout the code
|
||||||
|
- name: Checkout the merged commit from PR and base branch
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||||
|
|
||||||
|
- name: Checkout the head commit of the branch
|
||||||
|
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Figure out the PR number
|
||||||
|
run: echo ${{ github.event.pull_request.number }}
|
||||||
|
|
||||||
|
- name: Use Node.js 14.15.4
|
||||||
|
uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: "14.15.4"
|
||||||
|
|
||||||
|
- name: Get yarn cache directory path
|
||||||
|
id: yarn-dep-cache-dir-path
|
||||||
|
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||||
|
|
||||||
|
# Retrieve npm dependencies from cache. After a successful run, these dependencies are cached again
|
||||||
|
- name: Cache npm dependencies
|
||||||
|
id: yarn-dep-cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
env:
|
||||||
|
cache-name: cache-yarn-dependencies
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
${{ steps.yarn-dep-cache-dir-path.outputs.dir }}
|
||||||
|
key: ${{ runner.os }}-yarn-dep-${{ hashFiles('**/yarn.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-yarn-dep-
|
||||||
|
|
||||||
|
# Install all the dependencies
|
||||||
|
- name: Install dependencies
|
||||||
|
run: yarn install
|
||||||
|
|
||||||
|
- name: Set the build environment based on the branch
|
||||||
|
id: vars
|
||||||
|
run: |
|
||||||
|
echo "::set-output name=REACT_APP_ENVIRONMENT::DEVELOPMENT"
|
||||||
|
if [[ "${{github.ref}}" == "refs/heads/master" ]]; then
|
||||||
|
echo "::set-output name=REACT_APP_ENVIRONMENT::PRODUCTION"
|
||||||
|
fi
|
||||||
|
if [[ "${{github.ref}}" == "refs/heads/release" ]]; then
|
||||||
|
echo "::set-output name=REACT_APP_ENVIRONMENT::STAGING"
|
||||||
|
fi
|
||||||
|
# Since this is an unreleased build, we set the version to incremented version number with
|
||||||
|
# a `-SNAPSHOT` suffix.
|
||||||
|
latest_released_version="$(git tag --list 'v*' --sort=-version:refname | head -1)"
|
||||||
|
echo "latest_released_version = $latest_released_version"
|
||||||
|
next_version="$(echo "$latest_released_version" | awk -F. -v OFS=. '{ $NF++; print }')"
|
||||||
|
echo "next_version = $next_version"
|
||||||
|
echo ::set-output name=version::$next_version-SNAPSHOT
|
||||||
|
|
||||||
|
- name: Run the jest tests
|
||||||
|
run: REACT_APP_ENVIRONMENT=${{steps.vars.outputs.REACT_APP_ENVIRONMENT}} yarn run test:unit
|
||||||
|
|
||||||
|
# We burn React environment & the Segment analytics key into the build itself.
|
||||||
|
# This is to ensure that we don't need to configure it in each installation
|
||||||
|
- name: Create the bundle
|
||||||
|
run: |
|
||||||
|
REACT_APP_ENVIRONMENT=${{steps.vars.outputs.REACT_APP_ENVIRONMENT}} \
|
||||||
|
REACT_APP_FUSIONCHARTS_LICENSE_KEY=${{ secrets.APPSMITH_FUSIONCHARTS_LICENSE_KEY }} \
|
||||||
|
REACT_APP_SEGMENT_CE_KEY=${{ secrets.APPSMITH_SEGMENT_CE_KEY }} \
|
||||||
|
SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} \
|
||||||
|
REACT_APP_VERSION_ID=${{ steps.vars.outputs.version }} \
|
||||||
|
REACT_APP_VERSION_RELEASE_DATE=$(date -u '+%Y-%m-%dT%H:%M:%SZ') \
|
||||||
|
yarn build
|
||||||
|
|
||||||
|
# Upload the build artifact so that it can be used by the test & deploy job in the workflow
|
||||||
|
- name: Upload react build bundle
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: build
|
||||||
|
path: app/client/build/
|
||||||
|
|
@ -1,21 +1,15 @@
|
||||||
name: Appsmith Client Workflow
|
name: Appsmith Client Test Workflow
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# This line enables manual triggering of this workflow.
|
# This line enables manual triggering of this workflow.
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
push:
|
pull_request_review:
|
||||||
branches: [release, master]
|
types: [submitted]
|
||||||
# Only trigger if files have changed in this specific path
|
|
||||||
paths:
|
|
||||||
- 'app/client/**'
|
|
||||||
- '!app/client/cypress/manual_TestSuite/**'
|
|
||||||
|
|
||||||
pull_request:
|
|
||||||
branches: [release, master]
|
branches: [release, master]
|
||||||
paths:
|
paths:
|
||||||
- 'app/client/**'
|
- "app/client/**"
|
||||||
- '!app/client/cypress/manual_TestSuite/**'
|
- "!app/client/cypress/manual_TestSuite/**"
|
||||||
|
|
||||||
# Change the working directory for all the jobs in this workflow
|
# Change the working directory for all the jobs in this workflow
|
||||||
defaults:
|
defaults:
|
||||||
|
|
@ -24,6 +18,7 @@ defaults:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
if: github.event.review.state == 'approved'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
|
|
@ -33,7 +28,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
# Checkout the code
|
# Checkout the code
|
||||||
- name: Checkout the merged commit from PR and base branch
|
- name: Checkout the merged commit from PR and base branch
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request_review'
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
@ -144,7 +139,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
# Checkout the code
|
# Checkout the code
|
||||||
- name: Checkout the merged commit from PR and base branch
|
- name: Checkout the merged commit from PR and base branch
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request_review'
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||||
|
|
@ -289,7 +284,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
# Checkout the code
|
# Checkout the code
|
||||||
- name: Checkout the merged commit from PR and base branch
|
- name: Checkout the merged commit from PR and base branch
|
||||||
if: github.event_name == 'pull_request'
|
if: github.event_name == 'pull_request_review'
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||||
|
|
@ -7,4 +7,3 @@
|
||||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||||
|
|
||||||
For details on setting up your development machine, please refer to the [Setup Guide](https://github.com/appsmithorg/appsmith/blob/release/contributions/ClientSetup.md)
|
For details on setting up your development machine, please refer to the [Setup Guide](https://github.com/appsmithorg/appsmith/blob/release/contributions/ClientSetup.md)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user