Merge branch 'master' into release
This commit is contained in:
commit
a51082fb54
18
.github/workflows/client.yml
vendored
18
.github/workflows/client.yml
vendored
|
|
@ -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
|
||||
12
.github/workflows/server.yml
vendored
12
.github/workflows/server.yml
vendored
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
|||
26
.github/workflows/sync-community-repo.yml
vendored
Normal file
26
.github/workflows/sync-community-repo.yml
vendored
Normal 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
3
app/client/.sentryclirc
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[defaults]
|
||||
project=appsmith
|
||||
org=appsmith
|
||||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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 you’d like to and then click **Clone**.
|
||||
4. Open the directory you just created to see your repository’s 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).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}),
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -180,4 +180,4 @@
|
|||
"atobInput": "{{atob('QQ==')",
|
||||
"btoaInput": "{{btoa('A')",
|
||||
"defaultInputBinding": "{{Input2.text"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
45
app/client/src/enterprise/README.md
Normal file
45
app/client/src/enterprise/README.md
Normal 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.
|
||||
|
||||
|
|
@ -110,7 +110,7 @@ export const EntityProperties = memo(
|
|||
},
|
||||
);
|
||||
|
||||
EntityProperties.displayName = "EntityPrperties";
|
||||
EntityProperties.displayName = "EntityProperties";
|
||||
|
||||
(EntityProperties as any).whyDidYouRender = {
|
||||
logOnDifferentValues: false,
|
||||
|
|
|
|||
|
|
@ -113,6 +113,7 @@ const WidgetsEditor = () => {
|
|||
node = <Canvas dsl={widgets} />;
|
||||
}
|
||||
log.debug("Canvas rendered");
|
||||
PerformanceTracker.stopTracking();
|
||||
return (
|
||||
<EditorContextProvider>
|
||||
<EditorWrapper onClick={handleWrapperClick}>
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"compilerOptions": {
|
||||
"baseUrl": "src",
|
||||
"paths": {
|
||||
"@appsmith/*": ["*"]
|
||||
"@appsmith/*": ["enterprise/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user