mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-09 22:14:29 +09:00
## Description ### Full track https://github.com/webstudio-is/webstudio-saas/issues/317#issuecomment-2289241819 So thoughts about session https://github.com/webstudio-is/webstudio-saas/issues/317#issuecomment-2314515772 Some explanations what is fixed and how https://github.com/webstudio-is/webstudio-saas/issues/317#issue-2465048823 Next PR: - [x] - Old share links auto redirect - [x] - Try make better error message having that current PR will logout all users. ## Steps for reproduction 1. Login using `google login` or `dev login` try to open projects on dahsboard, create new, clone delete etc. 2. Try to open projects on dahboard, see each is on it's own domain and work 3. Try to open project link (without share token) with other user - should fail. 4. Try publish/clone any links and operations. 5. Share project from `userA`: - try to open it with other `userB` - see `userB` is not logged in to that project - try to get using fetch from console anything about `userB` or `userA` i.e rest etc endpoints on apps.webstudio.is domain - try to open incognito, check it works. 6. Open few project, then logout from dashboard, reload project page - See login page - Try to login as same uer - see it works - Or try to login as another user - see auth error ## Code Review - [ ] hi @kof, I need you to do - conceptual review (architecture, feature-correctness) - detailed review (read every line) - test it on preview ## Before requesting a review - [ ] made a self-review - [ ] added inline comments where things may be not obvious (the "why", not "what") ## Before merging - [ ] tested locally and on preview environment (preview dev login: 5de6) - [ ] updated [test cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md) document - [ ] added tests - [ ] if any new env variables are added, added them to `.env` file
125 lines
3.8 KiB
YAML
125 lines
3.8 KiB
YAML
name: CLI R2
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- "*.staging"
|
|
|
|
# cancel in-progress runs on new commits to same PR (gitub.event.number)
|
|
concurrency:
|
|
group: vercel-cli-r2-${{ github.workflow }}-${{ github.event.number || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read # to fetch code (actions/checkout)
|
|
statuses: write # This is required for the GitHub Script createCommitStatus to work
|
|
packages: write
|
|
deployments: write
|
|
|
|
jobs:
|
|
build:
|
|
env:
|
|
COMPATIBILITY_DATE: 2024-04-10
|
|
|
|
environment:
|
|
name: "staging"
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.sha }} # HEAD commit instead of merge commit
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
cache: pnpm
|
|
|
|
- name: pnpm instal
|
|
run: pnpm install --ignore-scripts
|
|
|
|
- name: pnpm build
|
|
run: pnpm --filter 'webstudio-cloudflare-template^...' run build
|
|
|
|
# Ideally, execute 'pnpm deploy --prod', but @remix-run/dev doesn't support this flag.
|
|
# Despite being listed as a dependency, @remix-run/dev does not install the remix cli.
|
|
# TODO: Minimize artefact size due to frequent downloads on each publish.
|
|
- name: pnpm deploy
|
|
run: pnpm --filter 'webstudio-cloudflare-template' deploy "${{ github.workspace }}/../cloudflare-template"
|
|
|
|
- name: Make archive
|
|
run: |
|
|
tar --use-compress-program="zstd -19" -cf cloudflare-template.tar.zst cloudflare-template
|
|
working-directory: ${{ github.workspace }}/..
|
|
|
|
- name: Copy artifact
|
|
run: |
|
|
# For staging
|
|
aws s3 cp cloudflare-template.tar.zst "s3://${ARTEFACT_BUCKET_NAME}/public/cloudflare-template/${{ github.ref_name }}.tar.zst"
|
|
|
|
# For production can be cached forever
|
|
aws s3 cp \
|
|
--metadata-directive REPLACE --cache-control "public,max-age=31536102,immutable" \
|
|
cloudflare-template.tar.zst "s3://${ARTEFACT_BUCKET_NAME}/public/cloudflare-template/${{ github.sha }}.tar.zst"
|
|
|
|
working-directory: ${{ github.workspace }}/..
|
|
env:
|
|
AWS_ENDPOINT_URL_S3: ${{ secrets.AWS_ENDPOINT_URL_S3 }}
|
|
AWS_REGION: ${{ secrets.AWS_REGION }}
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
ARTEFACT_BUCKET_NAME: ${{ secrets.ARTEFACT_BUCKET_NAME }}
|
|
|
|
checks:
|
|
environment:
|
|
name: "staging"
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: build
|
|
|
|
steps:
|
|
- uses: pnpm/action-setup@v4
|
|
with:
|
|
version: "9"
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Copy atrifact via http
|
|
run: curl -o cloudflare-template.tar.zst ${{ secrets.ARTEFACT_BUCKET_URL }}/public/cloudflare-template/${{ github.ref_name }}.tar.zst
|
|
|
|
- name: Extract archive
|
|
run: tar --use-compress-program="zstd -d" -xf cloudflare-template.tar.zst -C .
|
|
|
|
- name: Webstudio Build
|
|
run: pnpm webstudio build --template internal --template saas-helpers --template cloudflare --assets false
|
|
working-directory: ${{ github.workspace }}/cloudflare-template
|
|
|
|
- name: Remix Build
|
|
run: pnpm build
|
|
working-directory: ${{ github.workspace }}/cloudflare-template
|
|
|
|
- name: WRANGLER Build
|
|
run: |
|
|
NODE_ENV=production pnpm wrangler deploy \
|
|
--name build \
|
|
--compatibility-date '${COMPATIBILITY_DATE}' \
|
|
--minify true \
|
|
--logpush true \
|
|
--dry-run \
|
|
--outdir dist \
|
|
'./functions/[[path]].ts'
|
|
|
|
working-directory: ${{ github.workspace }}/cloudflare-template
|
|
|
|
delete-github-deployments:
|
|
needs: checks
|
|
uses: ./.github/workflows/delete-github-deployments.yml
|
|
with:
|
|
ref: ${{ github.ref_name }}
|