Merge branch 'master' into release

This commit is contained in:
Hetu Nandu 2020-11-11 18:51:03 +05:30
commit a51082fb54
16 changed files with 133 additions and 37 deletions

View File

@ -21,6 +21,7 @@ jobs:
defaults:
run:
working-directory: app/client
shell: bash
steps:
# Checkout the code
@ -91,6 +92,7 @@ jobs:
defaults:
run:
working-directory: app/client
shell: bash
strategy:
fail-fast: false
matrix:
@ -161,8 +163,8 @@ jobs:
--env APPSMITH_ENCRYPTION_PASSWORD=password \
--env APPSMITH_ENCRYPTION_SALT=salt \
--env APPSMITH_IS_SELF_HOSTED=false \
appsmith/appsmith-server:release
appsmith/appsmith-server-ee:release
- name: Pull master server docker container and start it locally
if: github.ref == 'refs/heads/master'
shell: bash
@ -175,7 +177,7 @@ jobs:
--env APPSMITH_ENCRYPTION_PASSWORD=password \
--env APPSMITH_ENCRYPTION_SALT=salt \
--env APPSMITH_IS_SELF_HOSTED=false \
appsmith/appsmith-server:nightly
appsmith/appsmith-server-ee:nightly
- name: Installing Yarn serve
run: |
@ -269,15 +271,15 @@ jobs:
- name: Push release image to Docker Hub
if: success() && github.ref == 'refs/heads/release' && github.event_name == 'push'
run: |
docker build -t appsmith/appsmith-editor:${{steps.branch_name.outputs.tag}} .
docker build -t appsmith/appsmith-editor-ee:${{steps.branch_name.outputs.tag}} .
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
docker push appsmith/appsmith-editor
docker push appsmith/appsmith-editor-ee
# Build master Docker image and push to Docker Hub
- name: Push production image to Docker Hub with commit tag
if: success() && github.ref == 'refs/heads/master' && github.event_name == 'push'
run: |
docker build -t appsmith/appsmith-editor:${GITHUB_SHA} .
docker build -t appsmith/appsmith-editor:nightly .
docker build -t appsmith/appsmith-editor-ee:${GITHUB_SHA} .
docker build -t appsmith/appsmith-editor-ee:nightly .
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
docker push appsmith/appsmith-editor
docker push appsmith/appsmith-editor-ee

View File

@ -71,22 +71,22 @@ jobs:
- name: Push release image to Docker Hub
if: success() && github.ref == 'refs/heads/release'
run: |
docker build -t appsmith/appsmith-server:${{steps.vars.outputs.tag}} .
docker build -t appsmith/appsmith-server-ee:${{steps.vars.outputs.tag}} .
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
# This command pushes all the tags on the machine to Docker hub. This has been written for ease of reading. Be very careful
# with this command
docker push appsmith/appsmith-server
docker push appsmith/appsmith-server-ee
# Build master Docker image and push to Docker Hub
- name: Push master image to Docker Hub with commit tag
if: success() && github.ref == 'refs/heads/master'
run: |
docker build -t appsmith/appsmith-server:${GITHUB_SHA} .
docker build -t appsmith/appsmith-server:nightly .
docker build -t appsmith/appsmith-server-ee:${GITHUB_SHA} .
docker build -t appsmith/appsmith-server-ee:nightly .
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
# This command pushes all the tags on the machine to Docker hub. This has been written for ease of reading. Be very careful
# with this command
docker push appsmith/appsmith-server
docker push appsmith/appsmith-server-ee
# These are dummy jobs in the CI build to satisfy required status checks for merging PRs. This is a hack because Github doesn't support conditional
# required checks in monorepos. These jobs are a clone of similarly named jobs in client.yml.
@ -119,4 +119,4 @@ jobs:
shell: bash
run: |
exit 0

View File

@ -0,0 +1,26 @@
# This workflow is responsible for syncing the release branch from the community edition repository
name: Sync Community workflow
on:
schedule:
- cron: "0 * * * *"
jobs:
repo-sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: release
fetch-depth: 0
# This step pulls the merges the latest release branch from the Appsmith CE into EE repository
- name: repo-sync
run: |
git remote add community https://github.com/appsmithorg/appsmith.git
git config user.email "automated@github.com"
git config user.name "Automated Github Action"
git pull community release --no-edit
git push origin release

3
app/client/.sentryclirc Normal file
View File

@ -0,0 +1,3 @@
[defaults]
project=appsmith
org=appsmith

View File

@ -7,3 +7,4 @@
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)

View File

@ -42,4 +42,4 @@ Use these steps to clone from SourceTree, our client for using the repository co
3. When you see the **Clone New** dialog in SourceTree, update the destination path and name if youd like to and then click **Clone**.
4. Open the directory you just created to see your repositorys files.
Now that you're more familiar with your Bitbucket repository, go ahead and add a new file locally. You can [push your change back to Bitbucket with SourceTree](https://confluence.atlassian.com/x/iqyBMg), or you can [add, commit,](https://confluence.atlassian.com/x/8QhODQ) and [push from the command line](https://confluence.atlassian.com/x/NQ0zDQ).
Now that you're more familiar with your Bitbucket repository, go ahead and add a new file locally. You can [push your change back to Bitbucket with SourceTree](https://confluence.atlassian.com/x/iqyBMg), or you can [add, commit,](https://confluence.atlassian.com/x/8QhODQ) and [push from the command line](https://confluence.atlassian.com/x/NQ0zDQ).

View File

@ -22,13 +22,11 @@ if (env === "PRODUCTION" || env === "STAGING") {
new SentryWebpackPlugin({
include: "build",
ignore: ["node_modules", "webpack.config.js"],
setCommits: {
auto: true
},
release: process.env.REACT_APP_SENTRY_RELEASE,
deploy: {
env: process.env.REACT_APP_SENTRY_ENVIRONMENT
}
}),
})
);
}

View File

@ -180,4 +180,4 @@
"atobInput": "{{atob('QQ==')",
"btoaInput": "{{btoa('A')",
"defaultInputBinding": "{{Input2.text"
}
}

View File

@ -1,34 +1,46 @@
[build]
[build.environment]
# REACT_APP_SENTRY_DSN=
# REACT_APP_SENTRY_ENVIRONMENT=
# REACT_APP_SENTRY_RELEASE=
# REACT_APP_OAUTH2_GOOGLE_CLIENT_ID=
# REACT_APP_OAUTH2_GITHUB_CLIENT_ID=
# REACT_APP_SEGMENT_KEY=
# REACT_APP_MARKETPLACE_URL=
# REACT_APP_OPTIMIZELY_KEY=
# REACT_APP_ALGOLIA_API_ID=
# REACT_APP_ALGOLIA_API_KEY=
# REACT_APP_ALGOLIA_SEARCH_INDEX_NAME=
REACT_APP_CLIENT_LOG_LEVEL="debug"
# REACT_APP_GOOGLE_MAPS_API_KEY=
REACT_APP_OAUTH2_GOOGLE_CLIENT_ID = "enabled"
REACT_APP_OAUTH2_GITHUB_CLIENT_ID = "enabled"
REACT_APP_OPTIMIZELY_KEY = "Jq3K2kVdvuvxecHyHbVYcj"
REACT_APP_ALGOLIA_API_ID = "AZ2Z9CJSJ0"
REACT_APP_ALGOLIA_API_KEY = "d113611dccb80ac14aaa72a6e3ac6d10"
REACT_APP_ALGOLIA_SEARCH_INDEX_NAME = "test_appsmith"
REACT_APP_CLIENT_LOG_LEVEL = "debug"
REACT_APP_GOOGLE_MAPS_API_KEY = "AIzaSyBOQFulljufGt3VDhBAwNjZN09KEFufVyg"
REACT_APP_TNC_PP = "true"
REACT_APP_CLOUD_HOSTING = "true"
REACT_APP_INTERCOM_APP_ID = "y10e7138"
REACT_APP_MAIL_ENABLED = "true"
REACT_APP_SENTRY_DSN = "https://abf15a075d1347969df44c746cca7eaa@o296332.ingest.sentry.io/1546547"
REACT_APP_SENTRY_ENVIRONMENT = "Production"
SENTRY_AUTH_TOKEN = "dfdf7fa46c5b483a944b4571554d6466da3c64a6ed8b46e3b8a4285183a6bcc3"
SENTRY_DSN = "https://abf15a075d1347969df44c746cca7eaa@o296332.ingest.sentry.io/1546547"
SENTRY_ORG = "appsmith"
SENTRY_PROJECT = "appsmith"
SENTRY_LOG_LEVEL = "info"
[context.production]
[context.production.environment]
REACT_APP_ENVIRONMENT = "PRODUCTION"
REACT_APP_SENTRY_ENVIRONMENT = "Production"
REACT_APP_SMART_LOOK_ID = "c370af0df0edf38360adbefbdc47d2b42ea137c9"
REACT_APP_SEGMENT_KEY = "9OnZ6LnDztuZZo4zXfoutEEBB2wftHUH"
REACT_APP_BASE_URL = "https://api.appsmith.com"
APP_HOST = "app.appsmith.com"
REACT_APP_CLIENT_LOG_LEVEL = "error"
[context.release]
[context.release.environment]
REACT_APP_ENVIRONMENT = "STAGING"
REACT_APP_SENTRY_ENVIRONMENT = "Staging"
REACT_APP_BASE_URL = "https://release-api.appsmith.com"
APP_HOST = "release.app.appsmith.com"
[context.deploy-preview]
[context.deploy-preview.environment]
REACT_APP_ENVIRONMENT = "STAGING"
REACT_APP_SENTRY_ENVIRONMENT = "Development"
REACT_APP_BASE_URL = "https://release-api.appsmith.com"
# Not adding an APP_HOST here because the URL is dynamic in nature and cannot be determined.

View File

@ -0,0 +1,45 @@
## Appsmith EE
We use the `@appsmith` alias to switch files between CE and EE to avoid conflicts
during regular merging.
Steps to change something for the EE version of app
- For the functionality you want to change the import statement in its consumers
to include the `@appsmith` import in the *CE repo*. For eg if you want to update the ApplicationCard
component will update this file of ApplicationList component.
*FROM*
```typescript
// ApplicationList.tsx
import ApplicationCard from "./ApplicationCard";
// OR
import ApplicationCard from "pages/Applications/ApplicationCard";
```
*TO*
```typescript
// ApplicationList.tsx
import ApplicationCard from "@appsmith/pages/Applications/ApplicationCard";
```
- Create a new file inside the *EE repo* called ApplicationCard with the same path
```shell script
$ touch app/client/src/enterprise/pages/Applications/ApplicationCard
```
- EE will now use this file, so you can export a custom ApplicationCard component for EE.
The goal is to reduce conflicts and have EE extend virtually any part of CE so selecting files to
update will be crucial. You should keep the following points in mind:
- NEVER update the CE file in the EE repo
- All the consumers of the file will need it's expected exports.
- You can import from the CE file and reexport from your EE if no changes are expected.
- The types of component props if different will cause problems in the component declaration and use.
You can export that out these props into the `@appsmith` space to avoid this problem by reimplementing them in EE.

View File

@ -110,7 +110,7 @@ export const EntityProperties = memo(
},
);
EntityProperties.displayName = "EntityPrperties";
EntityProperties.displayName = "EntityProperties";
(EntityProperties as any).whyDidYouRender = {
logOnDifferentValues: false,

View File

@ -113,6 +113,7 @@ const WidgetsEditor = () => {
node = <Canvas dsl={widgets} />;
}
log.debug("Canvas rendered");
PerformanceTracker.stopTracking();
return (
<EditorContextProvider>
<EditorWrapper onClick={handleWrapperClick}>

View File

@ -1,6 +1,5 @@
import React from "react";
import { Route, RouteComponentProps } from "react-router-dom";
import AnalyticsUtil from "utils/AnalyticsUtil";
import * as Sentry from "@sentry/react";
import { connect } from "react-redux";
import { getThemeDetails } from "selectors/themeSelectors";

View File

@ -2,7 +2,7 @@
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@appsmith/*": ["*"]
"@appsmith/*": ["enterprise/*"]
}
}
}

View File

@ -30,4 +30,4 @@ In order to test the code, you can run the following command:
mvn -B clean package
```
Please make sure that you have a local Redis instance running for the test cases. During tests, the MongoDB is run in-memory. So you don't require to be running a local MongoDB instance.
Please make sure that you have a local Redis instance running for the test cases. During tests, the MongoDB is run in-memory. So you don't require to be running a local MongoDB instance.

View File

@ -41,4 +41,13 @@ APPSMITH_MAIL_ENABLED=false
APPSMITH_REDIS_URL=redis://redis:6379
APPSMITH_MONGODB_URI=mongodb://$encoded_mongo_root_user:$encoded_mongo_root_password@$mongo_host/appsmith?retryWrites=true
# *******************************
# *** EE Specific Config ********
# APPSMITH_MARKETPLACE_URL=
# APPSMITH_RAPID_API_KEY_VALUE=
# APPSMITH_ROLLBAR_ACCESS_TOKEN=
# APPSMITH_ROLLBAR_ENV=
# APPSMITH_SEGMENT_KEY=
# *******************************
EOF