diff --git a/.github/workflows/web-deploy-accounts.yml b/.github/workflows/web-deploy-accounts.yml new file mode 100644 index 0000000000000000000000000000000000000000..8164aea441ab7cf3e906010222129480c98ab739 --- /dev/null +++ b/.github/workflows/web-deploy-accounts.yml @@ -0,0 +1,43 @@ +name: "Deploy (accounts)" + +on: + push: + # Run workflow on pushes to the deploy/accounts + branches: [deploy/accounts] + +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 accounts + run: yarn build:accounts + + - name: Publish accounts + uses: cloudflare/pages-action@1 + with: + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + projectName: ente + branch: deploy/accounts + directory: web/apps/accounts/out + wranglerVersion: "3" diff --git a/.github/workflows/web-deploy-auth.yml b/.github/workflows/web-deploy-auth.yml new file mode 100644 index 0000000000000000000000000000000000000000..63a56b95bee17225eee32a99f1fb2fac305853f2 --- /dev/null +++ b/.github/workflows/web-deploy-auth.yml @@ -0,0 +1,43 @@ +name: "Deploy (auth)" + +on: + push: + # Run workflow on pushes to the deploy/auth + branches: [deploy/auth] + +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 auth + run: yarn build:auth + + - name: Publish auth + uses: cloudflare/pages-action@1 + with: + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + projectName: ente + branch: deploy/auth + directory: web/apps/auth/out + wranglerVersion: "3" diff --git a/.github/workflows/web-deploy-cast.yml b/.github/workflows/web-deploy-cast.yml new file mode 100644 index 0000000000000000000000000000000000000000..be4861c71fff12fb42edbad5e071a77018674df8 --- /dev/null +++ b/.github/workflows/web-deploy-cast.yml @@ -0,0 +1,43 @@ +name: "Deploy (cast)" + +on: + push: + # Run workflow on pushes to the deploy/cast + branches: [deploy/cast] + +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 cast + run: yarn build:cast + + - name: Publish cast + uses: cloudflare/pages-action@1 + with: + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + projectName: ente + branch: deploy/cast + directory: web/apps/cast/out + wranglerVersion: "3" diff --git a/.github/workflows/web-deploy-photos.yml b/.github/workflows/web-deploy-photos.yml new file mode 100644 index 0000000000000000000000000000000000000000..64a88421d3e942843a67b2ba1200b321cdd128de --- /dev/null +++ b/.github/workflows/web-deploy-photos.yml @@ -0,0 +1,43 @@ +name: "Deploy (photos)" + +on: + push: + # Run workflow on pushes to the deploy/photos + branches: [deploy/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 photos + run: yarn build:photos + + - name: Publish photos + uses: cloudflare/pages-action@1 + with: + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + projectName: ente + branch: deploy/photos + directory: web/apps/photos/out + wranglerVersion: "3" diff --git a/web/docs/deploy-new.md b/web/docs/deploy-new.md index 4686e178244b1b14cb367d4e8ad1e8b5ad700f52..856175535bc8150c49b79b0e46e5d4c7b545ebab 100644 --- a/web/docs/deploy-new.md +++ b/web/docs/deploy-new.md @@ -6,8 +6,13 @@ how deployments happen on changes. The summary of what happens is: -* `docs/` get deployed to [help.ente.io](https://help.ente.io) whenever - something that changes `docs/` gets merged to main. +* Production deployments are triggered by pushing to the `deploy/*` branches. + +* [help.ente.io](https://help.ente.io) gets deployed whenever `docs/` changes on + main. + +* Every night, all the web apps are deployed to their nightly URLs using the + current code in main. This workflow can also be triggered manually. You likely don't need to know the rest of the details (until you do, but you can read on then). @@ -68,3 +73,19 @@ As a concrete example, the GitHub workflow that deploys `docs/` passes "help" as the branch name. The resulting deployment is available at "help.ente.pages.dev". Finally, we add a custom domain to point to it from [help.ente.io](https://help.ente.io). + +## Deployments + +| URL | Type |Deployment action | +|-----|------|------------------| +| [web.ente.io](https://web.ente.io) | Production | Push to `deploy/photos` | +| [photos.ente.io](https://photos.ente.io) | Production | Alias of [web.ente.io](https://web.ente.io) | +| [auth.ente.io](https://auth.ente.io) | Production | Push to `deploy/auth` | +| [accounts.ente.io](https://accounts.ente.io) | Production | Push to `deploy/accounts` | +| [cast.ente.io](https://cast.ente.io) | Production | Push to `deploy/cast` | +| [help.ente.io](https://help.ente.io) | Production | Push to `main` + changes in `docs/` | +| [TBD-photos.ente.io](https://photos.ente.sh) | Preview | Nightly deploy of `main` | +| [TBD-auth.ente.io](https://auth.ente.sh) | Preview | Nightly deploy of `main` | +| [TBD-accounts.ente.io](https://accounts.ente.sh) | Preview | Nightly deploy of `main` | +| [TBD-cast.ente.io](https://cast.ente.sh) | Preview | Nightly deploy of `main` | +