From 3e32e24748ec43e070262dd604e3f0263faabcae Mon Sep 17 00:00:00 2001 From: jamesread Date: Tue, 24 Sep 2024 00:40:01 +0000 Subject: [PATCH 1/9] feat: Better registration errors --- .../frontend/src/components/auth/register.tsx | 43 +++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/apps/frontend/src/components/auth/register.tsx b/apps/frontend/src/components/auth/register.tsx index ff678025..0f3d3cb4 100644 --- a/apps/frontend/src/components/auth/register.tsx +++ b/apps/frontend/src/components/auth/register.tsx @@ -65,6 +65,17 @@ export function Register() { ); } +function getHelpfulReasonForRegistrationFailure(httpCode) { + switch (httpCode) { + case 400: + return 'Email already exists'; + case 404: + return 'Your browser got a 404 when trying to contact the API, the most likely reasons for this are the NEXT_PUBLIC_BACKEND_URL is set incorrectly, or the backend is not running.'; + } + + return 'Unhandled error: ' + httpCode; +} + export function RegisterAfter({ token, provider, @@ -97,23 +108,31 @@ export function RegisterAfter({ const onSubmit: SubmitHandler = async (data) => { setLoading(true); - const register = await fetchData('/auth/register', { + + await fetchData('/auth/register', { method: 'POST', body: JSON.stringify({ ...data }), - }); - if (register.status === 400) { - form.setError('email', { - message: 'Email already exists', - }); - + }).then((response) => { setLoading(false); - } - fireEvents('register'); + if (response.status === 200) { + fireEvents('register') - if (register.headers.get('activate')) { - router.push('/auth/activate'); - } + if (response.headers.get('activate') === "true") { + router.push('/auth/activate'); + } else { + router.push('/auth/login'); + } + } else { + form.setError('email', { + message: getHelpfulReasonForRegistrationFailure(response.status), + }); + } + }).catch(e => { + form.setError("email", { + message: 'General error: ' + e.toString() + '. Please check your browser console.', + }); + }) }; return ( From dbf58a9f09de070c12ba8edb8c34be6bc955fca0 Mon Sep 17 00:00:00 2001 From: jamesread Date: Tue, 24 Sep 2024 00:48:22 +0000 Subject: [PATCH 2/9] Add type to registration failure func --- apps/frontend/src/components/auth/register.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/frontend/src/components/auth/register.tsx b/apps/frontend/src/components/auth/register.tsx index 0f3d3cb4..cd10c7a8 100644 --- a/apps/frontend/src/components/auth/register.tsx +++ b/apps/frontend/src/components/auth/register.tsx @@ -65,7 +65,7 @@ export function Register() { ); } -function getHelpfulReasonForRegistrationFailure(httpCode) { +function getHelpfulReasonForRegistrationFailure(httpCode: int) { switch (httpCode) { case 400: return 'Email already exists'; From 2e24c78c5d89d96af2d7c1191a86c9c5fcf05d9c Mon Sep 17 00:00:00 2001 From: jamesread Date: Tue, 24 Sep 2024 00:55:34 +0000 Subject: [PATCH 3/9] Add number type to registration failure func --- apps/frontend/src/components/auth/register.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/frontend/src/components/auth/register.tsx b/apps/frontend/src/components/auth/register.tsx index cd10c7a8..67fefbdf 100644 --- a/apps/frontend/src/components/auth/register.tsx +++ b/apps/frontend/src/components/auth/register.tsx @@ -65,7 +65,7 @@ export function Register() { ); } -function getHelpfulReasonForRegistrationFailure(httpCode: int) { +function getHelpfulReasonForRegistrationFailure(httpCode: number) { switch (httpCode) { case 400: return 'Email already exists'; From ef9b58fde5c5e1ab2bc978d17bb9d7639aa691a4 Mon Sep 17 00:00:00 2001 From: jamesread Date: Tue, 24 Sep 2024 12:46:50 +0100 Subject: [PATCH 4/9] ci: GitHub workflow for ARM64 --- .github/workflows/build-containers.yml | 62 ++++++++++++++++++++------ 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index a3dfadc1..56d38ad4 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -8,8 +8,27 @@ on: - '*' jobs: - build-containers: + build-containers-common: runs-on: ubuntu-latest + outputs: + containerver: ${{ steps.getcontainerver.outputs.containerver }} + steps: + - name: Get Container Version + id: getcontainerver + run: | + echo "containerver=$(date +'%s')" >> "$GITHUB_OUTPUT" + + build-containers: + needs: build-containers-common + strategy: + matrix: + include: + - os: ubuntu-latest + arch: [amd64] + - os: ubuntu-22.04-arm + arch: [arm64] + + runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 @@ -26,24 +45,41 @@ jobs: - name: docker build run: ./var/docker/docker-build.sh - - name: Get date - run: | - echo "DATE=$(date +'%s')" >> "$GITHUB_ENV" - - name: Print post-build debug info run: | docker images - name: docker tag + env: + CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} run: | - docker tag localhost/postiz ghcr.io/gitroomhq/postiz-app:${{ env.DATE }} - docker push ghcr.io/gitroomhq/postiz-app:${{ env.DATE }} + docker tag localhost/postiz ghcr.io/gitroomhq/postiz-app:${{ matrix.arch }}-${{ env.CONTAINERVER }} + docker push ghcr.io/gitroomhq/postiz-app:${{ matrix.arch }}-${{ env.CONTAINERVER }} - docker tag ghcr.io/gitroomhq/postiz-app:${{ env.DATE }} ghcr.io/gitroomhq/postiz-app:latest - docker push ghcr.io/gitroomhq/postiz-app:latest + docker tag localhost/postiz-devcontainer ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }} + docker push ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }} - docker tag localhost/postiz-devcontainer ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }} - docker push ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }} - - docker tag ghcr.io/gitroomhq/postiz-devcontainer:${{ env.DATE }} ghcr.io/gitroomhq/postiz-devcontainer:latest + docker tag ghcr.io/gitroomhq/postiz-devcontainer:${{ env.CONTAINERVER }} ghcr.io/gitroomhq/postiz-devcontainer:latest docker push ghcr.io/gitroomhq/postiz-devcontainer:latest + + build-container-manifest: + needs: build-containers + runs-on: ubuntu-latest + steps: + - name: Login to ghcr + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ github.token }} + + - name: Create Docker Manifest + env: + CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} + run: | + docker manifest create \ + ghcr.io/gitroomhq/postiz-app:latest \ + ghcr.io/gitroomhq/postiz-app:amd64-${{ needs.build-containers.outputs.containerver }} \ + ghcr.io/gitroomhq/postiz-app:arm64-${{ needs.build-containers.outputs.containerver }} + + docker manifest push ghcr.io/gitroomhq/postiz-app:latest From c6ef1a81c37c47366b6cfe6cfeb5f3413ee47ca8 Mon Sep 17 00:00:00 2001 From: jamesread Date: Tue, 24 Sep 2024 12:51:36 +0100 Subject: [PATCH 5/9] ci: bugfix ARM64 runner --- .github/workflows/build-containers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 56d38ad4..fde2e0c7 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -25,7 +25,7 @@ jobs: include: - os: ubuntu-latest arch: [amd64] - - os: ubuntu-22.04-arm + - os: [self-hosted, ARM64] arch: [arm64] runs-on: ${{ matrix.os }} From abeff59cf6af600da4c6cc5455ace8ae526e247d Mon Sep 17 00:00:00 2001 From: jamesread Date: Tue, 24 Sep 2024 13:16:22 +0100 Subject: [PATCH 6/9] ci: Fix container matrix job --- .github/workflows/build-containers.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index fde2e0c7..f6276a26 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -23,12 +23,12 @@ jobs: strategy: matrix: include: - - os: ubuntu-latest - arch: [amd64] - - os: [self-hosted, ARM64] - arch: [arm64] + - runnertags: ubuntu-latest + arch: amd64 + - runnertags: [self-hosted, ARM64] + arch: arm64 - runs-on: ${{ matrix.os }} + runs-on: ${{ matrix.runnertags }} steps: - name: Checkout uses: actions/checkout@v4 From f4341a218bcc786f790d45846b2df8fdee684b32 Mon Sep 17 00:00:00 2001 From: jamesread Date: Tue, 24 Sep 2024 13:25:14 +0100 Subject: [PATCH 7/9] ci: Fix container matrix job --- .github/workflows/build-containers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index f6276a26..2c34863a 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -79,7 +79,7 @@ jobs: run: | docker manifest create \ ghcr.io/gitroomhq/postiz-app:latest \ - ghcr.io/gitroomhq/postiz-app:amd64-${{ needs.build-containers.outputs.containerver }} \ - ghcr.io/gitroomhq/postiz-app:arm64-${{ needs.build-containers.outputs.containerver }} + ghcr.io/gitroomhq/postiz-app:amd64-${{ env.CONTAINERVER }} \ + ghcr.io/gitroomhq/postiz-app:arm64-${{ env.CONTAINERVER }} docker manifest push ghcr.io/gitroomhq/postiz-app:latest From e3764a1f18383bd26dc83466c566707598d983d2 Mon Sep 17 00:00:00 2001 From: James Read Date: Tue, 24 Sep 2024 17:16:19 +0200 Subject: [PATCH 8/9] Update build-containers.yml --- .github/workflows/build-containers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 2c34863a..effc4454 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -75,7 +75,7 @@ jobs: - name: Create Docker Manifest env: - CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} + CONTAINERVER: ${{ jobs.build-containers-common.outputs.containerver }} run: | docker manifest create \ ghcr.io/gitroomhq/postiz-app:latest \ From e3b1966be56ab9d2a40e30863c05e54d2f9084ac Mon Sep 17 00:00:00 2001 From: James Read Date: Tue, 24 Sep 2024 17:25:55 +0200 Subject: [PATCH 9/9] Update build-containers.yml --- .github/workflows/build-containers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index effc4454..a0d83a75 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -63,7 +63,7 @@ jobs: docker push ghcr.io/gitroomhq/postiz-devcontainer:latest build-container-manifest: - needs: build-containers + needs: [build-containers, build-containers-common] runs-on: ubuntu-latest steps: - name: Login to ghcr @@ -75,7 +75,7 @@ jobs: - name: Create Docker Manifest env: - CONTAINERVER: ${{ jobs.build-containers-common.outputs.containerver }} + CONTAINERVER: ${{ needs.build-containers-common.outputs.containerver }} run: | docker manifest create \ ghcr.io/gitroomhq/postiz-app:latest \