Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
2234b33
Updated Label Config
Nikhil-Nandagopal Aug 6, 2024
c9ecddc
Updated Label Config
Nikhil-Nandagopal Aug 6, 2024
cacdf90
Updated Label Config
Nikhil-Nandagopal Aug 6, 2024
2ed8aa8
Updated Label Config
Nikhil-Nandagopal Aug 6, 2024
c042f94
Updated Label Config
Nikhil-Nandagopal Aug 6, 2024
f19ec6a
fix: failing backup and restore appsmithctl (#35162)
pratapaprasanna Aug 6, 2024
b3c35e9
CI: commented files changed step. It is a notification step (#35460)
yatinappsmith Aug 6, 2024
1ca6ab8
chore: Override fast-xml-parser for security concern (#35435)
hetunandu Aug 6, 2024
c42e031
fix: change appsmith alias (#35349)
KelvinOm Aug 6, 2024
57a8e83
Updated Label Config
Nikhil-Nandagopal Aug 6, 2024
43518e6
chore: Remove google fonts imported from googleapis (#35392)
Aug 7, 2024
9b59d4d
fix: issue with opening custom widget source editor (#35463)
Aug 7, 2024
6d5dacd
Add a generic label check step
hetunandu Aug 7, 2024
f1190d2
Merge branch 'refs/heads/release' into chore/ok-to-test-push
hetunandu Aug 7, 2024
0b1bcf2
Revert "Add a generic label check step"
hetunandu Aug 7, 2024
6d1b9bd
test: fix flaky case for forkapp (#35376)
sagar-qa007 Aug 7, 2024
a4d2562
Update config.json
Nikhil-Nandagopal Aug 7, 2024
c8efe56
test: add ordering for theme import test to fix flakiness (#35473)
AnaghHegde Aug 7, 2024
aab81db
Updated Label Config
Nikhil-Nandagopal Aug 7, 2024
d693af7
Update config.json
Nikhil-Nandagopal Aug 7, 2024
8c950db
Update config.json
Nikhil-Nandagopal Aug 7, 2024
b346cbe
Update config.json
Nikhil-Nandagopal Aug 7, 2024
5acc392
Updated Label Config
Nikhil-Nandagopal Aug 7, 2024
fe7ca6b
chore: added prettier spotless plugin for json files (#35447)
NilanshBansal Aug 8, 2024
aaadbc6
chore: add isError to return value of extractIdentifierInfoFromCode i…
ashit-rath Aug 8, 2024
81ef501
fix: comment the flaky test to unblock TBP (#35540)
AnaghHegde Aug 8, 2024
f0bccc6
chore: Flaky test in `AuthenticationServiceTest` (#35538)
abhvsn Aug 8, 2024
061e376
chore: Update env variable used for update persistent DB URL (#35526)
abhvsn Aug 8, 2024
b7ec5da
chore: rename old ADS package (#35517)
KelvinOm Aug 8, 2024
f0059fe
fix: table save row button onclick function (#35412)
Aug 8, 2024
2e3791a
chore: added metrics around actions api view mode (#35416)
sneha122 Aug 8, 2024
4bbbaec
chore: Upgrade TinyMCE (#35399)
hetunandu Aug 8, 2024
2ca40ec
fix: hidden page was not being checked for route change (#35558)
Aug 9, 2024
8514cf1
fix: js object editor overflowing fixed (#35553)
Aug 9, 2024
855ef7f
fix: Clone js obj should allow action to contain collection id (#35567)
nidhi-nair Aug 9, 2024
c126604
fix: added an autocommit migration for theme settings. (#35554)
sondermanish Aug 9, 2024
92b8f81
test: Testing pipeline with build yaml and run_count (#35524)
sagar-qa007 Aug 9, 2024
7c0173a
chore: WDS text inputs visual refinements (#35581)
ichik Aug 9, 2024
e34af54
Updated Label Config
Nikhil-Nandagopal Aug 9, 2024
42debc6
chore: rename ADS package (#35583)
KelvinOm Aug 9, 2024
8bf6df5
fix: test storybook action (#35585)
KelvinOm Aug 9, 2024
8cbb13e
chore: Change `policies` set to `policyMap` (#34566)
sharat87 Aug 11, 2024
0afc9dd
chore: Ability to run PR automations every time PR updates (#35476)
hetunandu Aug 12, 2024
b8df54c
chore: batching updates for a few widgets to reduce rerenders (#35594)
vsvamsi1 Aug 12, 2024
d03278a
fix: overflow hidden was restricting the visibility of show bindings …
Aug 12, 2024
5494e8e
chore: Add tenant cache eviction for the existing policies to policyM…
abhvsn Aug 12, 2024
b64d5c8
fix: drag and drop issue in list widget (#35622)
rahulbarwal Aug 12, 2024
6238b3e
chore: Fix parameter call from build file (#35620)
sagar-qa007 Aug 12, 2024
9e7ad27
Merge remote-tracking branch 'origin/master' into fix/resolve-conflicts
KelvinOm Aug 12, 2024
45386df
Merge pull request #35630 from appsmithorg/fix/resolve-conflicts
yatinappsmith Aug 12, 2024
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.

26 changes: 21 additions & 5 deletions .github/workflows/build-client-server-count.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name: Build Client, Server & Run only Cypress
name: Build Client, Server & Run only Cypress with count

on:
repository_dispatch:
types: [ci-test-limit-count-command]


jobs:
file-check:
runs-on: ubuntu-latest
Expand All @@ -14,6 +15,7 @@ jobs:
pr: ${{steps.args.outputs.pr}}
runId: ${{steps.args.outputs.runId}}
matrix_count: ${{steps.matrix.outputs.matrix_count}}
run_count: ${{ steps.countArgs.outputs.run_count }}
steps:
- name: Checkout the head commit of the branch
uses: actions/checkout@v4
Expand All @@ -27,11 +29,23 @@ jobs:
id: args
run: |
echo "pr=${{ github.event.client_payload.pull_request.number }}" >> $GITHUB_OUTPUT
checkArg=`echo '${{toJSON(github.event.client_payload.slash_command.args.named)}}' | jq 'has("runId")'`
if [[ $checkArg == 'true' ]]; then
echo "runId=${{ github.event.client_payload.slash_command.args.named.runId }}" >> $GITHUB_OUTPUT
checkArg=${{ github.event.client_payload.slash_command.args.named.runId }}
if [[ -z "$checkArg" ]]; then
echo "runId=0" >> $GITHUB_OUTPUT
else
runId=$((checkArg + 0))
echo "runId=$runId" >> $GITHUB_OUTPUT
fi

- name: Set run count
id: countArgs
run: |
checkRunCount=${{ github.event.client_payload.slash_command.args.named.run_count }}
if [[ -z "$checkRunCount" ]]; then
echo "run_count=1" >> $GITHUB_OUTPUT # Set default to 1 if empty
else
echo "runId=0" >> $GITHUB_OUTPUT
run_count=$((checkRunCount + 0))
echo "run_count=$run_count" >> $GITHUB_OUTPUT
fi

- name: Get the diff from base branch
Expand Down Expand Up @@ -131,6 +145,7 @@ jobs:
secrets: inherit
with:
pr: ${{fromJson(needs.file-check.outputs.pr)}}
run_count: ${{fromJson(needs.file-check.outputs.run_count)}}

ci-test-limited-existing-docker-image:
needs: [file-check]
Expand All @@ -142,6 +157,7 @@ jobs:
with:
pr: ${{fromJson(needs.file-check.outputs.pr)}}
previous-workflow-run-id: ${{ fromJson(needs.file-check.outputs.runId) }}
run_count: ${{fromJson(needs.file-check.outputs.run_count)}}

ci-test-limited-result:
needs: [file-check, ci-test-limited]
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/ci-test-limited-with-count.yml
Original file line number Diff line number Diff line change
Expand Up @@ -209,14 +209,14 @@ jobs:
# actions/setup-node@v4 doesn’t work properly with Yarn 3
# when the project lives in a subdirectory: https://github.com/actions/setup-node/issues/488
# Restoring the cache manually instead
- name: Restore Yarn cache
if: steps.run_result.outputs.run_result != 'success'
uses: actions/cache@v4
with:
path: |
app/client/.yarn/cache
app/client/node_modules/.cache/webpack/
key: v1-yarn3-${{ hashFiles('app/client/yarn.lock') }}
# - name: Restore Yarn cache
# if: steps.run_result.outputs.run_result != 'success'
# uses: actions/cache@v4
# with:
# path: |
# app/client/.yarn/cache
# app/client/node_modules/.cache/webpack/
# key: v1-yarn3-${{ hashFiles('app/client/yarn.lock') }}

# Install all the dependencies
- name: Install dependencies
Expand Down Expand Up @@ -346,7 +346,7 @@ jobs:
NODE_ENV: development
run: |
cd app/client
npx cypress-repeat run -n ${{ github.event.inputs.run_count }} --force \
npx cypress-repeat run -n ${{ inputs.run_count }} --force \
--spec ${{ env.specs_to_run }} \
--config-file "cypress_ci_custom.config.ts"

Expand Down
61 changes: 56 additions & 5 deletions .github/workflows/pr-automation.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,68 @@
name: PR Automation test suite

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

on:
pull_request:
branches:
- release
- pg
types:
- labeled
types: [ labeled, synchronize ]

jobs:
checkTestLabel:
runs-on: ubuntu-latest
outputs:
ok_to_test: ${{ steps.checkLabel.outputs.ok_to_test }}
steps:

- name: Check PR Label
id: checkLabel
uses: actions/github-script@v7
with:
# This script will check if the PR has ok-to-test label.
# To avoid being dependent on the event which triggered this workflow,
# we will always get the pull request labels directly from the context
# It will later set the output to be "true" or "false".
script: |
const labels = context.payload.pull_request.labels.map(label => label.name);
if (labels.includes("ok-to-test")) {
console.log("Label 'ok-to-test' is present");
core.setOutput("ok_to_test", "true");
} else {
console.log("Label 'ok-to-test' is not present");
core.setOutput("ok_to_test", "false");
}

mark-stale:
needs: [ checkTestLabel ]
if: needs.checkTestLabel.outputs.ok_to_test == 'false'
runs-on: ubuntu-latest
permissions:
pull-requests: write
defaults:
run:
shell: bash
steps:
- name: Checkout code
uses: actions/checkout@v4
# In case of a no label present, mark the Cypress status to be stale
- name: Mark the Cypress response to be stale
uses: actions/github-script@v7
env:
NODE_PATH: "${{ github.workspace }}/.github/workflows/scripts"
BODY: |
Tests have not run on the HEAD ${{ github.event.pull_request.head.sha }} yet
with:
script: |
require("write-cypress-status.js")({core, context, github}, "warning", process.env.BODY)

parse-tags:
needs: [ checkTestLabel ]
if: needs.checkTestLabel.outputs.ok_to_test == 'true'
runs-on: ubuntu-latest
if: github.event.label.name == 'ok-to-test'
permissions:
pull-requests: write
defaults:
Expand All @@ -27,7 +78,7 @@ jobs:
- name: Checkout the head commit of the branch
uses: actions/checkout@v4
with:
repository: appsmithorg/appsmith
repository: appsmithorg/appsmith

# Reads the PR description to retrieve the /ok-to-test or, if that's absent, the /test command
- name: Read tags from PR description
Expand Down Expand Up @@ -72,7 +123,7 @@ jobs:

# Call the workflow to run Cypress tests
perform-test:
needs: [parse-tags]
needs: [ parse-tags ]
if: success()
uses: ./.github/workflows/pr-cypress.yml
secrets: inherit
Expand Down
20 changes: 7 additions & 13 deletions .github/workflows/test-storybook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,12 @@ jobs:

- name: Install Dependencies
working-directory: ./app/client/packages/storybook
run: yarn install --immutable
run: |
yarn install --immutable
npx playwright install --with-deps

- name: Storybook Tests
id: Test Storybook
uses: actions/setup-node@v4
with:
node-version-file: app/client/package.json

- name: Install Playwright
run: npx playwright install --with-deps

- name: Serve Storybook and run tests
with:
workingDir: ./app/client/packages/storybook
buildScriptName: "test-storybook:ci"
working-directory: ./app/client/packages/storybook
run: |
yarn build-storybook
yarn test-storybook:ci
3 changes: 1 addition & 2 deletions app/client/.babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
"actions":"./src/actions/",
"api": "./src/api/",
"assets": "./src/assets/",
"sagas": "./src/sagas/",
"@appsmith": "./src/ee"
"sagas": "./src/sagas/"
}
}, "babel-plugin-styled-components"]
]
Expand Down
4 changes: 2 additions & 2 deletions app/client/.eslintrc.base.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@
{
"group": ["*.svg"],
"importNames": ["ReactComponent"],
"message": "Reason: Please don’t import SVG icons statically. (They won’t always be needed, but they *will* always be present in the bundle and will increase the bundle size.) Instead, please either import them as SVG paths (e.g. import starIconUrl from './star.svg'), or use the importSvg wrapper from design-system-old (e.g. const StarIcon = importSvg(() => import('./star.svg')))."
"message": "Reason: Please don’t import SVG icons statically. (They won’t always be needed, but they *will* always be present in the bundle and will increase the bundle size.) Instead, please either import them as SVG paths (e.g. import starIconUrl from './star.svg'), or use the importSvg wrapper from @appsmith/ads-old (e.g. const StarIcon = importSvg(() => import('./star.svg')))."
},
{
"group": ["remixicon-react/*"],
"message": "Reason: Please don’t import Remix icons statically. (They won’t always be needed, but they *will* always be present in the bundle and will increase the bundle size.) Instead, please use the importRemixIcon wrapper from design-system-old (e.g. const StarIcon = importRemixIcon(() => import('remixicon-react/Star')))."
"message": "Reason: Please don’t import Remix icons statically. (They won’t always be needed, but they *will* always be present in the bundle and will increase the bundle size.) Instead, please use the importRemixIcon wrapper from @appsmith/ads-old (e.g. const StarIcon = importRemixIcon(() => import('remixicon-react/Star')))."
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion app/client/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ const eslintConfig = {
...(baseNoRestrictedImports.patterns ?? []),
{
group: ["**/ce/*"],
message: "Reason: Please use @appsmith import instead.",
message: "Reason: Please use ee/ import instead.",
},
],
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
fakerHelper,
homePage,
inviteModal,
dataSources,
} from "../../../../support/Objects/ObjectsCore";
import EditorNavigation, {
AppSidebar,
Expand Down Expand Up @@ -110,6 +111,7 @@ describe(
cy.log("isPartialImport : ", isPartialImport);
if (isPartialImport) {
agHelper.WaitUntilEleAppear(reconnectDatasourceModal.SkipToAppBtn);
agHelper.WaitUntilEleAppear(dataSources._saveDs);
agHelper.GetNClick(reconnectDatasourceModal.SkipToAppBtn, 0, true);
agHelper.WaitUntilEleDisappear(reconnectDatasourceModal.SkipToAppBtn);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,88 +14,78 @@ import EditorNavigation, {

const oneClickBinding = new OneClickBinding();

// TODO: Adds two rows on click of save row will debug and fix this in a different PR - Sangeeth
describe.skip("Table widget one click binding feature", () => {
it("1.should check that queries are created and bound to table widget properly", () => {
entityExplorer.DragDropWidgetNVerify(draggableWidgets.TABLE, 400);
describe(
"Table widget one click binding feature",
{ tags: ["@tag.Widget"] },
() => {
it("1.should check that queries are created and bound to table widget properly", () => {
entityExplorer.DragDropWidgetNVerify(draggableWidgets.TABLE, 400);

dataSources.CreateDataSource("MySql");
dataSources.CreateDataSource("MySql");

cy.get("@dsName").then((dsName) => {
EditorNavigation.SelectEntityByName("Table1", EntityType.Widget);
cy.get("@dsName").then((dsName) => {
EditorNavigation.SelectEntityByName("Table1", EntityType.Widget);

oneClickBinding.ChooseAndAssertForm(`${dsName}`, dsName, "configs", {
searchableColumn: "configName",
oneClickBinding.ChooseAndAssertForm(`${dsName}`, dsName, "configs", {
searchableColumn: "configName",
});
});
});

agHelper.GetNClick(oneClickBindingLocator.connectData);

assertHelper.AssertNetworkStatus("@postExecute");

agHelper.Sleep(2000);

[
"id",
"configName",
"configJson",
"configVersion",
"updatedAt",
"updatedBy",
].forEach((column) => {
agHelper.AssertElementExist(table._headerCell(column));
});

agHelper.GetNClick(table._addNewRow, 0, true);

table.EditTableCell(0, 1, "One Click Config", false);

table.UpdateTableCell(0, 2, `{{}"key":"oneClick"}`);
table.UpdateTableCell(0, 3, 36);
table.UpdateTableCell(0, 4, "2023-07-03 15:30:00", false, true);
agHelper.GetNClick(oneClickBindingLocator.connectData);

agHelper.Sleep(2000);
assertHelper.AssertNetworkStatus("@postExecute");

agHelper.GetNClick(table._saveNewRow, 0, true);
[
"id",
"configName",
"configJson",
"configVersion",
"updatedAt",
"updatedBy",
].forEach((column) => {
agHelper.AssertElementExist(table._headerCell(column));
});

assertHelper.AssertNetworkStatus("@postExecute");
agHelper.GetNClick(table._addNewRow, 0, true);

agHelper.TypeText(table._searchInput, "One Click Config");
table.EditTableCell(0, 1, "One Click Config", false);

assertHelper.AssertNetworkStatus("@postExecute");
table.UpdateTableCell(0, 2, `{{}"key":"oneClick"}`);
table.UpdateTableCell(0, 3, 36);
table.UpdateTableCell(0, 4, "2023-07-03 15:30:00", false, true);

agHelper.AssertElementExist(table._bodyCell("One Click Config"));
agHelper.GetNClick(table._saveNewRow, 0, true);

agHelper.Sleep(1000);
assertHelper.AssertNetworkStatus("@postExecute");

table.EditTableCell(0, 1, "Bindings", false);
table.EditTableCell(0, 4, "2023-07-03 15:30:00", false);
agHelper.TypeText(table._searchInput, "One Click Config");

agHelper.Sleep(1000);
assertHelper.AssertNetworkStatus("@postExecute");

(cy as any).AssertTableRowSavable(6, 0);
agHelper.AssertElementExist(table._bodyCell("One Click Config"));

(cy as any).saveTableRow(6, 0);
table.EditTableCell(0, 1, "Bindings", false);
table.EditTableCell(0, 4, "2023-07-03 15:30:00", false);

assertHelper.AssertNetworkStatus("@postExecute");
(cy as any).AssertTableRowSavable(6, 0);

assertHelper.AssertNetworkStatus("@postExecute");
(cy as any).saveTableRow(6, 0);

agHelper.Sleep(500);
agHelper.ClearNType(table._searchInput, "Bindings");
assertHelper.AssertNetworkStatus("@postExecute");

assertHelper.AssertNetworkStatus("@postExecute");
assertHelper.AssertNetworkStatus("@postExecute");

agHelper.Sleep(2000);
agHelper.ClearNType(table._searchInput, "Bindings");

agHelper.AssertElementExist(table._bodyCell("Bindings"));
assertHelper.AssertNetworkStatus("@postExecute");

agHelper.ClearNType(table._searchInput, "One Click Config");
agHelper.AssertElementExist(table._bodyCell("Bindings"));

assertHelper.AssertNetworkStatus("@postExecute");
agHelper.ClearNType(table._searchInput, "One Click Config");

agHelper.Sleep(2000);
assertHelper.AssertNetworkStatus("@postExecute");

agHelper.AssertElementAbsence(table._bodyCell("One Click Config"));
});
});
agHelper.AssertElementAbsence(table._bodyCell("One Click Config"));
});
},
);
Loading