## Description
- Allowing static split of cypress specs in CI runs.
- Optimised the spec allocation by considering the duration history for
each spec.
- Updated the affecting workflows to utilise the static split
#### Type of change
- Workflows
- Cypress-split pugin
## Testing
- Workflow run
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new environment variable to optimize test resource
allocation during CI/CD processes.
- Enhanced Cypress testing with dynamic and static test splitting
strategies.
- **Refactor**
- Refactored Cypress plugin configuration to support conditional test
splitting based on the environment variable.
- **Chores**
- Updated GitHub Actions workflows to include new environment variables
for test runs.
- **Documentation**
- Updated internal documentation to reflect changes in test setup and
execution strategies.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
> Added a cron job for the TBP workflow to run at 6 am on weekdays-
Daily Promotion analysis purpose
#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)
## Testing
- To check if the workflow is triggered as expected
#### How Has This Been Tested?
- [x] Manual
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
## Description
Currently, when we run the server build without tests, we still try to
check the cache for run-result, but as the cache is not present during
the first run, where we just build the server, and on the success of the
workflow, actions/cache create the cache with the specified key,
Which is creating an issue while we try to save the actual run-result
cache when we run the tests in server-unit-tests.
Solution :
- Added a condition to check the cache present only while running tests
#### Type of change
- Workflow changes (server-build.yml)
## Testing
- Workflow run
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Updated the server build process to conditionally skip certain steps
based on user input.
- **Chores**
- Improved automation in the build workflow to enhance efficiency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- Added the required logic to rerun only the failed tests in JUnit in
server-build.yml
- Separated the build and test steps to accommodate our requirements
#### Type of change
- Workflow changes (server-build.yml)
## Testing
- [x] [Workflow
run](https://github.com/appsmithorg/appsmith/actions/runs/7164444771?pr=29469)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Documentation**
- Enhanced comments for clarity in test methods related to application
creation, duplication, and cloning.
- Updated comments to reflect changes in test assertions for application
visibility and user anonymity.
- **Tests**
- Modified assertions in `ActionServiceCE_Test` to align with expected
behavior in view mode.
- Added new assertions and comments in `ApplicationServiceCETest` to
improve test coverage and documentation.
- **Chores**
- Improved the server build workflow with better caching and error
handling mechanisms.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Also modifying server-build to store the failed builds as an artifact that can be used later
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Implemented a new step in the build process to upload reports for
failed tests, enhancing visibility into test failures during continuous
integration.
- **Bug Fixes**
- Adjusted test assertions in `AnalyticsServiceCEImplTest` to correctly
reflect the expected behavior.
- Modified the assertion logic in `ApplicationServiceCETest` to ensure
the test aligns with the intended application validation process.
- **Documentation**
- No user-facing documentation changes in this release.
- **Refactor**
- Introduced `TestResultLoggerExtension` to improve test failure logging
and reporting.
- **Tests**
- Enabled auto-detection of JUnit Jupiter extensions to streamline the
testing framework setup.
- **Chores**
- No significant chores affecting end-users in this release.
- **Revert**
- No reverts in this release.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Leveraging the library
[cypress-grep](https://github.com/cypress-io/cypress/tree/develop/npm/grep).
Using this we can tag testcases with relevant tags and use it to run
specific testcases.
**Command to run in local:**
`CYPRESS_grepTags=@tag.Binding,@tag.Git npx cypress run
`
Pass the tags to CYPRESS_grepTags argument and only the test cases which
has the
tags passed will be picked to run. ex `@tag.Binding and @tag.Git` are
the tag names here.
**Tags can be added in the description on the test case like**
`{ tags: ["@tag.Datasource"] }` for a single tag
`{ tags: ["@tag.Datasource", "@tag.Git"] }` for multiple tags
**How to run In CI**
Single Tag - `/ok-to-test tags=@tag.Binding`
Multiple tag - `/ok-to-test tags=@tag.Binding,@tag.Git`
**TODOs in the next release:**
- [ ] Add tags.ts file with all needed tags
- [ ] Add tags to remaining spec files.
- [ ] Fail the PR run if tags added are not from tag.ts and post the
message on the same
#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
#### How Has This Been Tested?
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [x] Cypress
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
#### QA activity:
- [x] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [x] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added a search functionality to the app.
- **Enhancements**
- Integrated search bar at the top of the `Hero` component and a
`Search` component to the `App` component.
- Added styles for the search bar.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
## Description
- Now saving the docker image in cache instead of uploading it as an
artefact to save time
#### Type of change
- Workflow changes
## Testing
- Workflow run
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Updated CI workflows to use GitHub Actions cache for Docker images
instead of uploading to artifacts.
- Removed `restore-keys` from Yarn dependency caching for a more
streamlined caching process.
- Improved conditions for Docker image caching to enhance CI efficiency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Full git history is required by the chromatic plugin to work properly &
publish the site. Hence adding `fetch-depth: 0` back into the Chromatic
workflow
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Updated GitHub Actions workflows to fetch the full Git history for
more accurate CI/CD operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
- This PR makes changes to run the Client & Server unit tests in
parallel to Cypress for TBP workflow
- Removes invalid input restore-keys, adding cache-hit
- Remove save cache from /workflows/client-unit-tests.yml
- Making ci-test, client-unit-tests, server-unit-tests mandatory for
ci-test-result
#### Type of change
- Yml file update (non-breaking change which fixes an issue)
## Testing
>
#### How Has This Been Tested?
- TBP workflow run
## Checklist:
#### QA activity:
- [ ] Added `Test Plan Approved` label after workflow run & tests were
identified to run parallel to cypress
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Updated GitHub Actions workflows to use the latest version of
`actions/checkout`.
- Improved CI/CD pipeline by adding conditional job definitions for
server and client unit tests.
- Enhanced workflow logic to differentiate between pull request and
branch push triggers for more accurate code checkouts.
- Streamlined caching strategy by removing `restore-keys` configuration
for better dependency management during builds.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
RTS is already getting the version from `info.json`.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Streamlined the build process by removing unnecessary versioning
steps.
- **Refactor**
- Simplified the Docker image tagging process during builds.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This code is duplicated from generate_info_json.sh script, but that's
temporary. We'll be moving towards not having the version computation in
the workflows at all, and all components getting version information
from `info.json` alone. Essentially treating `info.json` as the source
of truth for this.
> Pull Request Template
>
> Use this template to quickly create a well written pull request.
Delete all quotes before creating the pull request.
>
## Description
> Add a TL;DR when description is extra long (helps content team)
>
> Please include a summary of the changes and which issue has been
fixed. Please also include relevant motivation
> and context. List any dependencies that are required for this change
>
> Links to Notion, Figma or any other documents that might be relevant
to the PR
>
>
#### PR fixes following issue(s)
Fixes # (issue number)
> if no issue exists, please create an issue and ask the maintainers
about this first
>
>
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Adjusted indentation in the build workflow for improved readability
and consistency.
- **Documentation**
- No alterations to exported entities' declarations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Updated GitHub Actions workflows to use `actions/checkout@v4` for
improved performance and reliability.
- Removed `fetch-depth` parameter to simplify checkout steps across
various workflows.
- Standardized quote usage for consistency in workflow files.
- **Documentation**
- Adjusted formatting and descriptions in workflow files for better
clarity and readability.
- **Refactor**
- Aligned multiple workflow files to follow a consistent structure and
naming convention.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fetch-depth 0 causes the Github workflow to checkout the entire Git
history. This is not required. We only need to check out the head of the
commit. By default, actions/checkout has fetch-depth=1, hence removing
it from the workflow completely for simplicity.
## Summary by CodeRabbit
- **Chores**
- Updated `umani/changed-files` action to v4.1.0 across various workflow
files.
- Updated `peter-evans/create-or-update-comment` action to v3 in
multiple workflow files.
- Minor adjustments to workflow syntax for consistency and accuracy.
- **Documentation**
- Corrected URLs in Slack notification messages to ensure accuracy.
- **Refactor**
- Removed redundant job configurations and steps related to caching and
storing run results.
- Streamlined environment variable usage by sourcing values from
secrets.
- **Style**
- Standardized quote usage in workflow files for file matching patterns.
- **Bug Fixes**
- Fixed URLs in echo statements within `test-build-docker-image.yml` to
point to the correct "cypress-dashboard" path segment.
- Updated `slack_color` and `slack_icon` values to better reflect
success and failure states in notifications.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
If the user types `ok-to-test tags=Git`, Cypress should only run the
specs marked with the Git tag
Related to #28943
#### Type of change
- New feature (non-breaking change which adds functionality)
## Testing
#### How Has This Been Tested?
- [ ] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
## Checklist:
#### Dev activity
- [X] My code follows the style guidelines of this project
- [X] I have performed a self-review of my own code
- [X] I have commented my code, particularly in hard-to-understand areas
- [X] I have made corresponding changes to the documentation
- [X] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [X] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
## Description
- This PR removes extra slash ymls
#### Type of change
- Yml file update fix (non-breaking change which fixes an issue)
## Checklist:
#### QA activity:
- [X] Added `Test Plan Approved` label after Cypress tests were reviewed
## Description
- Skip flaky tests on demand
#### Type of change
- Dime defenders changes to accommodate the flaky spec skip on demand
- Workflow changes to control the skip flaky functionality
## Description
- Map Chart Automation
#### PR fixes following issue(s)
- Added tests for Map Chart Widget
#### Type of change
- Cypress
## Testing
>
#### How Has This Been Tested?
- [x] Cypress
>
>
## Checklist:
#### QA activity:
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
## Description
- This PR includes [SetWidget property
validation](https://github.com/appsmithorg/TestSmith/issues/2409) script
- Identified flaky test path updation to point to Cypress dashboard
flaky test list
**Flaky fixes for below:**
- Api URL enter - added some settling time
- ClientSide/BugTests/AbortAction_Spec.ts - with new url
- ClientSide/Binding/Button_Text_WithRecaptcha_spec.js
- Updated from agHelper.SelectDropdownList to
propPane.SelectPropertiesDropDown
- /ClientSide/Widgets/Datepicker/DatePicker3_spec.ts
- /ClientSide/Widgets/ListV2/DataIdentifierProperty_spec.ts - split
- ServerSide/Postgres_DataTypes/Array_Spec.ts
- Radio/Radio2_spec.ts
- ListV2/DataIdentifier_spec.ts
- Postgres_DataTypes/UUID_Spec.ts
- Widgets/Multiselect/Multi_Select_Tree_spec.js
#### Type of change
- Script fix (non-breaking change which fixes an issue)
## Testing
>
#### How Has This Been Tested?
- [X] Cypress CI runs
## Checklist:
#### QA activity:
- [X] Added `Test Plan Approved` label after Cypress tests were reviewed
This will use the Appsmith base image which contains all the downloads
needed, so the image build in daily CI should be much more reliable, and
quite likely much faster.
All workflows have already been updated to use the BASE build argument
to set the base image.
Once this is merged, building the Docker image will fail if `BASE` build
argument is not passed. This is that the base is set explicitly
everywhere to not cause any confusion.
The deleted content has been moved to
8d34a2ac28/deploy/docker/base.dockerfile,
which builds the `base-*:*` images.
## Description
- This PR removes the env's from Setting up Cypress step
#### Type of change
- Yml update (non-breaking change which fixes an issue)
## Testing
>
#### How Has This Been Tested?
- [X] Cypress CI limited runs
## Checklist:
#### QA activity:
- [X] Added `Test Plan Approved` label after changes were reviewed