envd
envd copied to clipboard
Pull Request Preview Environments for increasing maintainer productivity
I would like to make life easier for Envd maintainers by implementing Uffizzi preview environments. Disclaimer: I work on Uffizzi.
Uffizzi is a Open Source full stack previews engine and our platform is available completely free for Envd (and all open source projects). This will provide maintainers with preview environments of their PRs in the cloud, allowing them iterate faster and reduce time to merge. You can see the open source repos which are currently using Uffizzi over here
Uffizzi is purpose-built for the task of previewing PRs and it integrates with your workflow to deploy preview environments in the background without any manual steps for maintainers or contributors.
I can go ahead and create an Initial PoC for you right away if you think there is value in this proposal.
TODO:
- [ ] Intial PoC
Seems a good idea. But as for our preview, will it be a container which has the binary built from the PR?
Yes, and the UI will be a terminal in the web where you can test out your binary.
This is interesting but I am not sure if this is necessary. I personally prefer more solid test cases instead of manual verification.
@terrytangyuan I understand. It is better to have more solid test cases than manual UAT. These previews help in the manual testing also in getting a glimpse of the changes and if they work correctly before you pull the code and test it locally. I am working on a PoC maybe it'll help change your mind.
I have created an initial preview env over here https://pr-1-deployment-8319-envd.app.uffizzi.com/ for testing. Seems like envd is getting built as dir and not a binary. Not sure where I am going wrong. Maybe I need to use another dockerfile ? You can review my changes here https://github.com/waveywaves/envd/pull/1
@terrytangyuan Circling back to the point I made earlier. You can also automate your e2e against the uffizzi previews.
Seems like envd is getting built as dir and not a binary.
Could you please explain more? Did not get it.
@gaocegege just need a review on https://github.com/waveywaves/envd/pull/1 to see the changes basically. Not able to use the envd binary here https://pr-1-deployment-8319-envd.app.uffizzi.com/
You can also automate your e2e against the uffizzi previews.
Could you clarify? We can already run e2e tests on GitHub Actions. What additional features does uffizzi offer?
Hey @terrytangyuan, The main value proposition of Uffizzi is to create preview environments on all your PRs. These preview environments will have the env binary installed and you can access the preview environment from a terminal in the web. These are also shareable so you can just send the URL to the preview to someone who wants to see it. They do not need to have an account on Uffizzi to see the preview. One specific use I like is when a preview is created from a PR which is supposed to implement a particular feature, the preview acts as a usable demo. You can demo the PR directly to the team via the preview. New users can interact with these previews and get an idea of the product without installing locally. If they are looking out for a new feature on the product they can use the feature from the preview and then give feedback on it as well.
How do you envision yourself working with a preview environment for envd ? Let me know what you think.
/cc @kemingy @VoVAllen
I think it would have much pros for user trial and preview. As envd usually works with docker to pull and up some images from remote repo, there might be some difficulties:
- We need to install an docker for envd to display and preview main functions, but I saw Uffizzi also uses a container to run Apps, I am not sure whether it's aviable to deploy another docker inside Uffizzi.
- I saw Uffizzi will preserve user operation. If we create a file and close website, it will remain at container, is there some way to easily
reseta container/preview to original state? It will help us display envd operation both with and without local cache.
I would like it to run with every version release, to get user familiar with the product and new feature. Maybe contain some build.envd starlark file to let them quickly build environment. It would be better if Uffizzi could provide a Github badge that user click links to main branch / release preview build.
When runs at PR, it may help some feature PR that we could quick validate the feature, as we couldn't deploy tests for all new feature now. Nevertheless, we couldn't use them as test.