Automatically test example apps before release
On each release, we manually run and check all example apps. This can take a while, especially when there are fixes involved. We have recently reorganized and cleaned up our example apps in https://github.com/wasp-lang/wasp/issues/2713, so let's see whether we can automate everything we check in the remaining apps.
What we did in #2713:
- Ensured that all example apps combined cover most of Wasp's feature surface.
- Added some headless tests for some of those features.
What's left to do:
- Ensure those tests truly test all the specific features we care about (covered by #2812)
- Ensure we run the tests both in dev and "in production" (on a built version of the app). We already got this capability with https://github.com/wasp-lang/wasp/pull/2663
- Add those tests to the CI for each example app
This task sould take care of points 2 and 3.
This is more about testing Wasp than about testing specific examples. Closing this issue means we no longer need to manually test the example apps as a part of our release checklist.
Related PR https://github.com/wasp-lang/wasp/pull/2791
But it's slow until we parallelize our CI I'm not sure if we want to run this on each PR.
Also, #2812 updates should help with closing the that gap of not testing all Wasp features.
@infomiho Do we have an issue for that parallelization? I can't find it. I'll create one if not.
If that draft PR is ready, can we only run it on releases for now?
@cprecioso @infomiho The three of us will sync (or the two of you without me) when you get back to see what remains to be done to make this happen.
From what I got, most of the groundwork has already been laid out.
TLDR: This likely comes down to "just" creating a workflow for this in Github Actions and then running it at the right moment (on tags?).
Considering that we already run the todoApp headless tests on all PRs to waspc/**, I'll assume that this task is about running headless tests for leftover example apps in wasp/examples.
Those are TodoApp, TodoAppTs, waspello, waspleau, websockets-realtime-voting.
I'll explore how we will call this workflow.