rusackas commented on code in PR #29382: URL: https://github.com/apache/superset/pull/29382#discussion_r1857130300
########## docs/docs/contributing/development.mdx: ########## @@ -502,39 +502,117 @@ If using the eslint extension with vscode, put the following in your workspace ` ] ``` -## Testing -### Python Testing +## GitHub Actions and `act` + +:::tip +`act` compatibility of Superset's GHAs is not fully tested. Running `act` locally may or may not +work for different actions, and may require fine tuning and local secret-handling. +For those more intricate GHAs that are tricky to run locally, we recommend iterating +directly on GHA's infrastructure, by pushing directly on a branch and monitoring GHA logs. +For more targetted iteration, see the `gh workflow run --ref {BRANCH}` subcommand of the GitHub CLI. +::: + +For automation and CI/CD, Superset makes extensive use of GitHub Actions (GHA). You +can find all of the workflows and other assets under the `.github/` folder. This includes: +- running the backend unit test suites (`tests/`) +- running the frontend test suites (`superset-frontend/src/**.*.test.*`) +- running our Cypress end-to-end tests (`superset-frontend/cypress-base/`) +- linting the codebase, including all Python, Typescript and Javascript, yaml and beyond +- checking for all sorts of other rules conventions + +When you open a pull request (PR), the appropriate GitHub Actions (GHA) workflows will +automatically run depending on the changes in your branch. It's perfectly reasonable +(and required!) to rely on this automation. However, the downside is that it's mostly an +all-or-nothing approach and doesn't provide much control to target specific tests or +iterate quickly. + +At times, it may be more convenient to run GHA workflows locally. For that purpose +we use [act](https://github.com/nektos/act), a tool that allows you to run GitHub Actions (GHA) +workflows locally. It simulates the GitHub Actions environment, enabling developers to +test and debug workflows on their local machines before pushing changes to the repository. More +on how to use it in the next section. + +:::note +In both GHA and `act`, we can run a more complex matrix for our tests, executing against different +database engines (PostgreSQL, MySQL, SQLite) and different versions of Python. +This enables us to ensure compatibility and stability across various environments. +::: -All python tests are carried out in [tox](https://tox.readthedocs.io/en/latest/index.html) -a standardized testing framework. -All python tests can be run with any of the tox [environments](https://tox.readthedocs.io/en/latest/example/basic.html#a-simple-tox-ini-default-environments), via, +### Lower-Level Control + +Note that for all GHAs, it's also possible to go lower level and the content of any workflow Review Comment: I'm not sure I understand this sentence. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For additional commands, e-mail: notifications-h...@superset.apache.org