[web] Support preview deployments (#1052)

Preview deployments can be made by manually triggering the "Preview
(web)" workflow. You can select the app you want to build
(accounts/auth/cast/photos) and the branch to take the code from. The
deployment will be available at https://preview.ente.sh.
This commit is contained in:
Manav Rathi 2024-03-12 10:11:56 +05:30 committed by GitHub
commit c153b28ed6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 72 additions and 1 deletions

52
.github/workflows/web-preview.yml vendored Normal file
View file

@ -0,0 +1,52 @@
name: "Preview (web)"
on:
workflow_dispatch:
inputs:
app:
description: "App to build and deploy"
type: choice
required: true
default: "photos"
options:
- "accounts"
- "auth"
- "cast"
- "photos"
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: web
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"
- name: Install dependencies
run: yarn install
- name: Build ${{ inputs.app }}
run: yarn build:${{ inputs.app }}
- name: Publish ${{ inputs.app }} to preview
uses: cloudflare/pages-action@1
with:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
projectName: ente
branch: preview
directory: web/apps/${{ inputs.app }}/out
wranglerVersion: "3"

View file

@ -9,7 +9,11 @@ Cloudflare Pages.
anything inside `docs/` gets merged to `main`.
* Every night, all the web apps get automatically deployed to a nightly preview
URLs using the current code in main.
URLs (`*.ente.sh`) using the current code in main.
* A preview deployment can be made by triggering the "Preview (web)" workflow.
This allows us to deploy a build of any of the apps from an arbitrary branch
to [preview.ente.sh](https://preview.ente.sh).
Use the various `yarn deploy:*` commands to help with production deployments.
For example, `yarn deploy:photos` will open a PR to merge the current `main`
@ -21,6 +25,7 @@ and publish to [web.ente.io](https://web.ente.io).
> the merge commit.
## Deployments
Here is a list of all the deployments, whether or not they are production
deployments, and the action that triggers them:
@ -36,6 +41,7 @@ deployments, and the action that triggers them:
| [auth.ente.sh](https://auth.ente.sh) | Preview | Nightly deploy of `main` |
| [cast.ente.sh](https://cast.ente.sh) | Preview | Nightly deploy of `main` |
| [photos.ente.sh](https://photos.ente.sh) | Preview | Nightly deploy of `main` |
| [preview.ente.sh](https://preview.ente.sh) | Preview | Manually triggered |
### Other subdomains
@ -49,6 +55,19 @@ Apart from this, there are also some other deployments:
- `payments.ente.io` and `family.ente.io` are currently in a separate
repositories (Enhancement: bring them in here).
### Preview deployments
To trigger a preview deployment, manually trigger the "Preview (web)" workflow
from the Actions tab on GitHub. You'll need to select the app to build, and the
branch to use. This'll then build the specified app (e.g. "photos") from that
branch, and deploy it to [preview.ente.sh](https://preview.ente.sh).
The workflow can also be triggered using GitHub's CLI, gh. e.g.
```sh
gh workflow run web-preview -F app=cast --ref my-branch
```
---
## Details