[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:
commit
c153b28ed6
2 changed files with 72 additions and 1 deletions
52
.github/workflows/web-preview.yml
vendored
Normal file
52
.github/workflows/web-preview.yml
vendored
Normal 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"
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue