diff --git a/.github/workflows/web-deploy-accounts.yml b/.github/workflows/web-deploy-accounts.yml new file mode 100644 index 000000000..8164aea44 --- /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 000000000..63a56b95b --- /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 000000000..be4861c71 --- /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 000000000..64a88421d --- /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 4686e1782..856175535 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` | +