Commit Graph

18 Commits

Author SHA1 Message Date
Shrikant Sharat Kandula
3264ac3725
ci: Support for limited tests run from PR description (#34736)
Specify the specs we want to run, in a plain code fence, where the first
line has to exactly be `/test`. The remaining lines have to be one spec
file per line.

Like this:

```
/test
cypress/e2e/Regression/ClientSide/Fork/ForkApplication_spec.ts
cypress/e2e/Regression/ClientSide/JSLibrary/Library_spec.ts
```

1. It's not possible to run with tags and specs and the same time. This
will need a slightly larger effort. But we'll get there.
2. The status message shows spec files like they are space-separated,
and isn't very easy to read. Don't take it too seriously yet, we'll
improve.
3. Globs _should_ also work fine. The `spec` content, _almost_ directly
lands into the `--spec` argument of Cypress. See docs at
https://docs.cypress.io/guides/guides/command-line#cypress-run-spec-lt-spec-gt.
4. Multiple runners is disabled for this, have to solve it separately.
The `ci-test-limited.yml` also doesn't do multiple runners either.

<!-- This is an auto-generated comment: Cypress test results  -->
> [!WARNING]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9803353429>
> Commit: e99ae387c9a239ae51155af45977c285474cfbaf
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9803353429&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: 
> Spec: cypress/e2e/Regression/ClientSide/Fork/ForkApplication_spec.ts
> cypress/e2e/Regression/ClientSide/JSLibrary/Library_spec.ts
> 
> It seems like **no tests ran** 😔. We are not able to recognize it,
please check <a
href="https://github.com/appsmithorg/appsmith/actions/runs/9803353429"
target="_blank">workflow here</a>.
> <hr>Fri, 05 Jul 2024 05:20:23 UTC
<!-- end of auto-generated comment: Cypress test results  -->


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Enhanced GitHub Actions workflows to improve test specification
handling and reporting.
- Refactored tag parsing logic in scripts for more accurate and
informative outputs.


<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-08 21:28:07 +05:30
Shrikant Sharat Kandula
33e04b5e11
ci: Fix method used to set failure (#34402)
And use script to update PR description with Cypress status

## Summary by CodeRabbit

- **Enhancements**
- Improved GitHub Actions workflows for PR automation and Cypress tests.
- Enhanced test failure messages with links to Cypress dashboard and
flaky test identification.

- **User Experience**
- Cypress test status messages now include emoji prefixes for "tip"
(green) and "caution" (red) alerts.

- **Bug Fixes**
- Corrected error handling in scripts to provide more accurate failure
statuses.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-02 12:58:42 +05:30
Shrikant Sharat Kandula
c7088e734e
ci: Fix setting tags on Cypress run 2024-07-02 08:22:49 +05:30
Shrikant Sharat Kandula
5eada0aaed
ci: Fix Cypress test fail not reported for /test command (#34278)
Gets common validation code for tags, for both `/ok-to-test` and `/test`
commands. Currently, for invalid tags in `/test` command, we aren't
updating the PR description with details of the tag parsing failure.
This PR fixes that, after finally bringing all the logic into Javascript
needed to solve this.

**/test sanity**



<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9715326227>
> Commit: 260ec1888db114ae710b518abf36c54c6bfd2a9b
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9715326227&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: ``

<!-- end of auto-generated comment: Cypress test results  -->






<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Updated GitHub Actions workflow to trigger on 'release' and 'pg'
branches for 'ok-to-test' labeled PRs.
  - Simplified tag parsing and validation logic in automation scripts.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-01 23:32:56 +05:30
Shrikant Sharat Kandula
32147ddfdb
ci: Write Cypress status with the GitHub Script (#34559)
Replacing more of `nefrob/pr-description@v1.1.2` with our GitHub Script.
This is moving towards Javascript CI, and hopefully an unit-testable CI.




<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Replaced `nefrob/pr-description` action with `actions/github-script`
for handling test responses in PR automation.
- Improved guidance on modifying PR body for correct tag usage and
linked to relevant documentation.
- Enhanced script content to handle warnings and failures more
effectively in PR workflow automation.

- **New Features**
- Updated the `write-cypress-status` script to support different alert
types and prefixes, ensuring better validation and formatting of alerts.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-27 23:32:30 +05:30
Shrikant Sharat Kandula
36ee1be478
ci: Remove impact-less message about using @tag.All (#34547)
This message goes in the PR description, and the immediate next step
happily overwrites it. People never get to see this message at all
(unless we check the description history, of course).

Removing it as we likely don't need this reminder anymore.




<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Removed outdated PR automation code related to test response tagging.


<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-27 14:26:09 +05:30
Shrikant Sharat Kandula
4a6dc86a60
ci: Update PR description with GitHub Script (#34292)
This PR switches the steps updating PR description to a local Javascript
script, run using `actions/github-script`, instead of depending on an
external third-party action.

Why? Besides reducing our dependency on third-party actions, which have
been found to break with surprises, we need this to fix a bug with the
`/test` command. The `/test` command, when is written with invalid tags,
reports the error in the workflow run, but doesn't update the PR
description. Because of how it's written in Javascript, we need a
Javascript way to update the description to fix that. This will provide
for that.

Further PRs will replace other uses of PR description update steps with
this.

**/test sanity**



<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9556890596>
> Commit: 00d06858f6f7d14c6393cb16c894ddfd808b7cf8
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9556890596&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`

<!-- end of auto-generated comment: Cypress test results  -->



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Updated GitHub Actions workflow to enhance pull request automation
with Cypress test results.
  - Improved PR body updates with detailed test outcomes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-18 09:39:50 +05:30
Abhijeet
9d715748f5
chore: Update ci files for utilising base image on pg branch (#34190)
## Description
Temporary arrangement to consume different base image for `pg` vs
`release`, until we upgrade Postgres to v15 on release.

## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/9479342636>
> Commit: 69d29d1657d606d78c5f85aa130cf773eb693d27
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9479342636&attempt=1"
target="_blank">Click here!</a>

<!-- end of auto-generated comment: Cypress test results  -->











## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new input parameter `is-pg-build` to several workflows
for better customization of PostgreSQL builds.
- Enhanced Docker image build processes with dynamic base image tagging
based on pull request conditions.

- **Chores**
- Updated GitHub Actions workflows to improve build automation and
conditional logic handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-12 15:03:49 +05:30
Arpit Mohan
36043fa345
ci: Upgrading nefrob/pr-description in CI files (#33986)
Upgrading nefrob/pr-description to v1.1.2 to remove warnings in Github
action logs for Node 20.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Updated GitHub Actions workflows to use the latest version (`v1.1.2`)
of the `nefrob/pr-description` action for improved stability and
performance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-05 15:37:56 +05:30
Shrikant Sharat Kandula
cb973941d5
ci: Add sloppy /test command (#33558)
Adds support for a `/test` command, without breaking the existing
`/ok-to-test` habits.

This is a _sloppy_ version of `/ok-to-test`. Turns out humans are
sloppy. So let's embrace the human. 🤯

Example incantation:
```
/test sanity workflow
```

The sloppy parser at work:

![shot-2024-05-18-03-40-30](https://github.com/appsmithorg/appsmith/assets/120119/0d495e88-a242-4f2b-a73c-bcf6e58cc9ad)

Of course, if a PR body contains `/ok-to-test`, that takes precedence,
and any `/test` is ignored.

We're also moving the logic of parsing the tags to a separate Javascript
file. It's still not in a form that's easily testable, perhaps, but I
hope this is a start for us to get to a "unit-tested CI". ❤️

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-05-20 15:26:12 +05:30
yatinappsmith
94958b538a
CI: fix checkout for label (#32775)
fix checkout for label
2024-04-18 16:19:27 +05:30
yatinappsmith
655548d948
CI: Fix label Checker (#32770)
Fix label Checker
2024-04-18 14:38:17 +05:30
yatinappsmith
4e6f3c599e
CI: Check for valid cypress tags (#32764)
## Description
Add a check to validate PRs

Fixes #`32763`  


## Automation

/ok-to-test tags=""

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!CAUTION]  
> If you modify the content in this section, you are likely to disrupt
the CI result for your PR.

<!-- end of auto-generated comment: Cypress test results  -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Integrated a new workflow step to validate tags in pull requests,
providing guidance for corrections and halting the workflow if tags are
incorrect.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-18 13:20:59 +05:30
Hetu Nandu
7a02a1764b
ci: [Cypress Test Results] Remove code wrappers from commit refs (#32543) 2024-04-10 15:06:16 +05:30
Shrikant Sharat Kandula
7c89a3bad0
ci: Better and more visible colors (#32541) 2024-04-10 13:33:02 +05:30
Shrikant Sharat Kandula
0291ef7e46
ci: Allow special chars in PR body (#32089)
Currently, we get the value of the PR body into a variable, by injecting
it into a variable definition. This has two problems:

1. If the PR body has a `'` character in it, then the string definition
will terminate there, and cause an syntax error in the rest of the
script.
2. This is prone to [script injections as documented by
GitHub](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#understanding-the-risk-of-script-injections).
2024-03-27 08:58:27 +05:30
Nidhi
3756e94d91
ci: Prettify and remove redundancies (#31638) 2024-03-09 17:48:13 +05:30
Nidhi
86f5e8617e
ci: Prettify and remove redundancies (#31637) 2024-03-09 13:46:56 +05:30