Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
d718437
chore: Added capability of running ITs using ok-to-test (#38355)
nidhi-nair Jan 1, 2025
463c119
fix: fix oracle spec (#38435)
sagar-qa007 Jan 1, 2025
0b3e188
chore: flexible return for test payload extraction func (#38443)
Jan 2, 2025
51f3d0e
chore: Added support for artifact type in git redis utils (#38418)
nidhi-nair Jan 2, 2025
9c81647
feat: custom eslint rule infra (#38345)
Jan 2, 2025
49f9362
chore: Switching to ref types and names for git (#38433)
nidhi-nair Jan 2, 2025
99a10e4
fix: Updating the click functionalities in list item component (#38453)
ankitakinger Jan 2, 2025
dffabc2
chore: Set default reftype in git metadata (#38455)
nidhi-nair Jan 2, 2025
bd116cd
chore: added git controller layer (#38446)
sondermanish Jan 2, 2025
74cd364
test: flaky check for Abort spec (#38428)
NandanAnantharamu Jan 3, 2025
0198ad8
test: flaky check for onload spec (#38429)
NandanAnantharamu Jan 3, 2025
9dba1f2
Updated Label Config
Nikhil-Nandagopal Jan 3, 2025
909bcff
Updated Label Config
Nikhil-Nandagopal Jan 3, 2025
78df400
Updated Label Config
Nikhil-Nandagopal Jan 3, 2025
c43f84d
test: flaky check for published Spec (#38427)
NandanAnantharamu Jan 3, 2025
1405aa6
fix: update client version in JsonSchemaVersionsFallback (#38390) (#3…
rahulbarwal Jan 3, 2025
28d35ad
test: Added branding related test for the community user (#38460)
sagar-qa007 Jan 3, 2025
c2e4e11
feat: State Inspector (#38368)
hetunandu Jan 3, 2025
9ce2598
chore: git mod - integration with applications (#38439)
Jan 5, 2025
649338d
chore: added git resource map consumption (#38470)
sondermanish Jan 5, 2025
625be35
chore: Automation test cases added for shared drive gsheet (#38341)
sneha122 Jan 6, 2025
5b7bde7
chore: CE split for git constants and AGF (#38464)
nidhi-nair Jan 6, 2025
f46fd97
Updated Label Config
Nikhil-Nandagopal Jan 6, 2025
c06e38e
feat: ADS Entity Item (#38442)
hetunandu Jan 6, 2025
bd32f53
chore: increase craco --max-old-space-size to 10240 (#38494)
Jan 6, 2025
b3b33a4
chore: Allow context to determine path in file dir (#38498)
nidhi-nair Jan 6, 2025
a75c530
test: Cypress test for validating file uploads greater than 20MB (#38…
shadabbuchh Jan 7, 2025
58850c3
chore: Update CODEOWNERS (#38514)
nidhi-nair Jan 7, 2025
a4163f8
chore: Update chat bot endpoint (#38513)
hetunandu Jan 7, 2025
3626b93
feat: paragon frontend ds creation implementation added (#38456)
sneha122 Jan 7, 2025
d1fcc23
chore: Add code-split for service layer Git integration for packages …
subrata71 Jan 7, 2025
f6d7ce6
chore: git mod - test fixes (#38357)
Jan 7, 2025
a9a0d71
chore: fix form widgets bugs (#38492)
jsartisan Jan 7, 2025
f7296ef
chore: bump DSL version to 91 and update migration logic (#38516)
rahulbarwal Jan 7, 2025
3072d1e
fix: external saas redirection when api created and navigated (#38518)
Jan 8, 2025
c7c7625
fix: Resolving merge conflict (#38528)
ankitakinger Jan 8, 2025
469f9df
Revert "fix: Resolving merge conflict" (#38531)
ankitakinger Jan 8, 2025
347e7b8
chore: disable faro session tracking (#38523)
Jan 8, 2025
7fd50c5
chore: Housekeeping of List Item and Entity Item (#38524)
hetunandu Jan 8, 2025
e0e76d6
Revert "chore: Housekeeping of List Item and Entity Item" (#38535)
hetunandu Jan 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/config.json

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions .github/workflows/pr-automation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ jobs:
shell: bash
outputs:
tags: ${{ steps.parseTags.outputs.tags }}
its: ${{ steps.parseTags.outputs.its }}
spec: ${{ steps.parseTags.outputs.spec }}
matrix: ${{ steps.checkAll.outputs.matrix }}
steps:
Expand Down Expand Up @@ -129,6 +130,7 @@ jobs:
uses: ./.github/workflows/pr-cypress.yml
secrets: inherit
with:
its: ${{ needs.parse-tags.outputs.its}}
tags: ${{ needs.parse-tags.outputs.tags}}
spec: ${{ needs.parse-tags.outputs.spec}}
matrix: ${{ needs.parse-tags.outputs.matrix}}
Expand Down
15 changes: 14 additions & 1 deletion .github/workflows/pr-cypress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ name: Cypress test suite
on:
workflow_call:
inputs:
its:
required: false
type: string
default: "false"
tags:
required: true
type: string
Expand Down Expand Up @@ -45,6 +49,15 @@ jobs:
with:
pr: ${{ github.event.number }}

server-it:
needs: [ server-build, rts-build ]
if: success() && inputs.its == 'true'
uses: ./.github/workflows/server-integration-tests.yml
secrets: inherit
with:
pr: ${{ github.event.number }}
is-pg-build: ${{ github.event.pull_request.base.ref == 'pg' }}

build-docker-image:
needs: [client-build, server-build, rts-build]
# Only run if the build step is successful
Expand All @@ -69,7 +82,7 @@ jobs:
matrix: ${{ inputs.matrix }}

ci-test-result:
needs: [ci-test]
needs: [ci-test, server-it]
# Only run if the ci-test with matrices step is successful
if: always()
runs-on: ubuntu-latest
Expand Down
32 changes: 22 additions & 10 deletions .github/workflows/scripts/test-tag-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,37 @@ module.exports = function ({core, context, github}) {
}

core.setOutput("tags", parseResult.tags ?? "");
core.setOutput("its", parseResult.its ?? "");
core.setOutput("spec", parseResult.spec ?? "");
}

function parseTags(body) {
const allTags = require(process.env.GITHUB_WORKSPACE + "/app/client/cypress/tags.js").Tag;

// "/ok-to-test" matcher. Takes precedence over the "/test" matcher.
const strictMatch = body.match(/^\/ok-to-test tags="(.+?)"/m)?.[1];
if (strictMatch) {
if (strictMatch === "@tag.All") {
return { tags: strictMatch };
}
const parts = strictMatch.split(/\s*,\s*/);
for (const part of parts) {
if (!allTags.includes(part)) {
throw new Error("Unknown tag: " + part);
const okToTestPattern = body.match(/^(\/ok-to-test) tags="(.+?)"( it=true)?/m);

if (okToTestPattern?.[1]) {
var response = {};
const tagsMatch = okToTestPattern?.[2];
if (tagsMatch) {
if (tagsMatch === "@tag.All") {
response = { tags: tagsMatch };
} else {
const parts = tagsMatch.split(/\s*,\s*/);
for (const part of parts) {
if (!allTags.includes(part)) {
throw new Error("Unknown tag: " + part);
}
}
response = { tags: tagsMatch };
}
}
return { tags: strictMatch };
const itsMatch = okToTestPattern?.[3];
if (itsMatch) {
response = { ...response, its: 'true' };
}
return response;
}

// "/test" code-fence matcher.
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/server-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ on:
workflow_call:
inputs:
pr:
description: "This is the PR number in case the workflow is being called in a pull request"
description: "PR number for the workflow"
required: false
type: number
skip-tests:
description: "This is a boolean value in case the workflow is being called in build deploy-preview"
description: "Skip tests flag"
required: false
type: string
default: "false"
branch:
description: "This is the branch to be used for the build."
description: "Branch for the build"
required: false
type: string
is-pg-build:
description: "This is a boolean value in case the workflow is being called for a PG build"
description: "Flag for PG build"
required: false
type: string
default: "false"
Expand Down Expand Up @@ -210,6 +210,7 @@ jobs:
fi

args=()

if [[ "${{ steps.run_result.outputs.run_result }}" == "failedtest" ]]; then
failed_tests="${{ steps.failed_tests.outputs.tests }}"
args+=("-DfailIfNoTests=false" "-Dsurefire.failIfNoSpecifiedTests=false" "-Dtest=${failed_tests}")
Expand Down
108 changes: 108 additions & 0 deletions .github/workflows/server-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Server Integrations Tests Workflow

on:
# This line enables manual triggering of this workflow.
workflow_dispatch:
workflow_call:
inputs:
pr:
description: "This is the PR number in case the workflow is being called in a pull request"
required: false
type: number
is-pg-build:
description: "Flag for PG build"
required: false
type: string
default: "false"

jobs:
run-tests:
runs-on: ubuntu-latest-8-cores
if: |
github.event.pull_request.head.repo.full_name == github.repository ||
github.event_name == 'workflow_dispatch'
defaults:
run:
shell: bash
# Service containers to run with this job. Required for running tests
services:
# Label used to access the service container
redis:
# Docker Hub image for Redis
image: redis
ports:
# Opens tcp port 6379 on the host and service container
- 6379:6379

steps:
# Check out merge commit
- name: Fork based /ok-to-test checkout
if: inputs.pr != 0
uses: actions/checkout@v4
with:
ref: "refs/pull/${{ inputs.pr }}/merge"

# Checkout the code in the current branch in case the workflow is called because of a branch push event
- name: Checkout the head commit of the branch
if: inputs.pr == 0
uses: actions/checkout@v4

# Setup Java
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"

- name: Conditionally start PostgreSQL
if: |
inputs.is-pg-build == 'true'
run: |
docker run --name appsmith-pg -p 5432:5432 -d -e POSTGRES_PASSWORD=password postgres:alpine postgres -N 1500

- name: Download the server build artifact
uses: actions/download-artifact@v4
with:
name: server-build
path: app/server/dist/

- name: Download the rts build artifact
uses: actions/download-artifact@v4
with:
name: rts-dist
path: app/client/packages/rts/dist

- name: Un-tar the rts folder
run: |
tar -xvf app/client/packages/rts/dist/rts-dist.tar -C app/client/packages/rts/
echo "Cleaning up the rts tar files"
rm app/client/packages/rts/dist/rts-dist.tar

- name: Run rts using the untarred files
run: |
nohup -- node app/client/packages/rts/dist/bundle/server.js &

- name: Run only integration tests on server
env:
ACTIVE_PROFILE: test
APPSMITH_CLOUD_SERVICES_BASE_URL: "https://release-cs.appsmith.com"
APPSMITH_CLOUD_SERVICES_TEMPLATE_UPLOAD_AUTH: ${{ secrets.APPSMITH_CLOUD_SERVICES_TEMPLATE_UPLOAD_AUTH }}
APPSMITH_REDIS_URL: "redis://127.0.0.1:6379"
APPSMITH_ENCRYPTION_PASSWORD: "password"
APPSMITH_ENCRYPTION_SALT: "salt"
APPSMITH_ENVFILE_PATH: /tmp/dummy.env
APPSMITH_VERBOSE_LOGGING_ENABLED: false
run: |
if [[ "${{ inputs.is-pg-build }}" == "true" ]]; then
export APPSMITH_DB_URL="postgresql://postgres:password@localhost:5432/postgres"
else
export APPSMITH_DB_URL="mongodb://localhost:27017/mobtools"
fi

args=()

# Run tests and capture logs
cd app/server
mvn verify -DskipUTs=true "${args[@]}" | tee mvn_integration_test.log


11 changes: 3 additions & 8 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# This is a comment.
# Each line is a file pattern followed by one or more owners.
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# Followed Globstar paths in combination with wildcard paths. Reference https://docs.gitlab.com/ee/user/project/codeowners/reference.html#globstar-paths

app/client/.husky @KelvinOm
app/client/.yarn @KelvinOm
Expand Down Expand Up @@ -100,6 +101,8 @@ app/server/**/*Git*.java @appsmithorg/git-be-reviewers
app/server/**/*Import*.java @appsmithorg/git-be-reviewers
app/server/**/*Export*.java @appsmithorg/git-be-reviewers

app/server/**/*Environment* @appsmithorg/git-be-reviewers

app/client/src/pages/Editor/gitSync/ @appsmithorg/git-fe-reviewers
app/client/packages/dsl/ @appsmithorg/git-fe-reviewers

Expand Down Expand Up @@ -136,14 +139,6 @@ app/client/src/sagas/QueryPaneSagas.ts @ayushpahwa
app/client/src/transformers/RestAPIDatasourceFormTransformer.ts @ayushpahwa


# Followed Globstar paths in combination with wildcard paths. Reference https://docs.gitlab.com/ee/user/project/codeowners/reference.html#globstar-paths
# Data Platform Pod
app/server/**/*Action* @nidhi-nair @sondermanish
app/server/**/*Datasource* @nidhi-nair @sondermanish
app/server/**/*OAuth2* @nidhi-nair @sondermanish
app/server/**/*Authentication* @nidhi-nair @sondermanish
app/server/**/*Environment* @nidhi-nair @sondermanish

# Team Managers pod
app/client/src/pages/Settings/**/* @ankitakinger
app/client/src/pages/workspace/settings.tsx @ankitakinger
Expand Down
2 changes: 1 addition & 1 deletion app/client/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ export REACT_APP_SENTRY_RELEASE=$GIT_SHA
export REACT_APP_CLIENT_LOG_LEVEL=ERROR
# Disable CRA built-in ESLint checks since we have our own config and a separate step for this
export DISABLE_ESLINT_PLUGIN=true
craco --max-old-space-size=7168 build --config craco.build.config.js
craco --max-old-space-size=10240 build --config craco.build.config.js

echo "build finished"
2 changes: 1 addition & 1 deletion app/client/cypress/e2e/GSheet/SelectedSheet_Access_Spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const workspaceName = "gsheet apps";
const dataSourceName = "gsheet-selected";
let appName = "gsheet-app";
let spreadSheetName = "test-sheet-automation-selected";
describe(
describe.skip(
"GSheet-Functional Tests With Selected Access",
{
tags: ["@tag.Datasource", "@tag.GSheet", "@tag.Git", "@tag.AccessControl"],
Expand Down
Loading