Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull Request Preview Environments for increasing maintainer productivity #1246

Open
1 task
waveywaves opened this issue Dec 1, 2022 · 11 comments · May be fixed by #1315
Open
1 task

Pull Request Preview Environments for increasing maintainer productivity #1246

waveywaves opened this issue Dec 1, 2022 · 11 comments · May be fixed by #1315

Comments

@waveywaves
Copy link

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
@aseaday
Copy link
Member

aseaday commented Dec 1, 2022

Seems a good idea. But as for our preview, will it be a container which has the binary built from the PR?

@waveywaves
Copy link
Author

Yes, and the UI will be a terminal in the web where you can test out your binary.

@terrytangyuan
Copy link
Member

This is interesting but I am not sure if this is necessary. I personally prefer more solid test cases instead of manual verification.

@waveywaves
Copy link
Author

waveywaves commented Dec 2, 2022

@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 waveywaves#1

@waveywaves
Copy link
Author

@terrytangyuan Circling back to the point I made earlier. You can also automate your e2e against the uffizzi previews.

@gaocegege
Copy link
Member

Seems like envd is getting built as dir and not a binary.

Could you please explain more? Did not get it.

@waveywaves
Copy link
Author

@gaocegege just need a review on waveywaves#1 to see the changes basically. Not able to use the envd binary here https://pr-1-deployment-8319-envd.app.uffizzi.com/

@terrytangyuan
Copy link
Member

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?

@waveywaves
Copy link
Author

waveywaves commented Dec 8, 2022

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.

@gaocegege
Copy link
Member

/cc @kemingy @VoVAllen

@waveywaves waveywaves linked a pull request Dec 16, 2022 that will close this issue
@cutecutecat
Copy link
Member

cutecutecat commented Dec 17, 2022

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 reset a 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants