Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
4ae75c0
feat: setup react-email for html emails
cyyynthia Nov 12, 2023
fd7b16f
chore: upgrade email subproject
cyyynthia Nov 16, 2024
2e03c1f
feat: configure CLI, write quick extractor
cyyynthia Nov 17, 2024
bb8d641
feat: rough first implementation of emails in backend
cyyynthia Nov 17, 2024
a073c66
fix: lint, try to troubleshoot test failures
cyyynthia Nov 20, 2024
902d7ca
fix: properly render strings using icu4j
cyyynthia Nov 23, 2024
25622f4
feat: render icu xml as fragments
cyyynthia Jun 9, 2025
f9b1b4a
feat: finalize working impl of react emails renderer
cyyynthia Jun 9, 2025
792010a
feat: implement global variables
cyyynthia Jun 9, 2025
df7170e
fix: properly implement sanitization in Var
cyyynthia Jun 9, 2025
63efb39
chore: minor adjustments
cyyynthia Jun 16, 2025
ad5c407
chore: typo in CI config
cyyynthia Jun 16, 2025
7974fc4
chore: fix accidentally introduced tab indents
cyyynthia Jun 16, 2025
5578b79
chore: fix typo part 2
cyyynthia Jun 16, 2025
d36475c
chore: please the artificial rabbit
cyyynthia Jun 16, 2025
1247189
chore: misc fixes and improvements
cyyynthia Jun 17, 2025
c36012d
chore: lint
cyyynthia Jun 17, 2025
5f36d65
fix: proper path in gha config
cyyynthia Jun 17, 2025
82e4158
chore: refactor
cyyynthia Jun 17, 2025
1c2adab
chore: minor improvement of EmailTemplateConfig
cyyynthia Jun 17, 2025
474e799
chore: gradle config
cyyynthia Jun 17, 2025
f61e496
chore: gradle config pt. 2
cyyynthia Jun 17, 2025
12989a7
chore: gradle config pt. 3
cyyynthia Jun 18, 2025
9c5336b
chore: gradle config pt. 3.1
cyyynthia Jun 18, 2025
08847e4
chore: gradle config pt. 3.2
cyyynthia Jun 18, 2025
f2a9af9
chore: gha tweaks (again)
cyyynthia Jun 20, 2025
6ea998c
chore: silly gha mistakes
cyyynthia Jun 20, 2025
3384a69
ci: mixed up src/dest actions
cyyynthia Jun 20, 2025
add5c96
fix: a small typo for a file, a giant failure for gradle build
cyyynthia Jul 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions .github/actions/download-backend-build/action.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
name: Download backend build
description: Download backend build from GitHub artifacts and decompress them

inputs:
target-directory:
description: Directory where the backend should be extracted to. Defaults to current working directory.
default: .

runs:
using: composite
steps:
Expand All @@ -10,16 +15,19 @@ runs:
name: backend
path: ~/

- name: Un-tar build results
shell: sh
- name: Decompress build results
shell: bash
env:
DEST_DIR: ${{ inputs.target-directory }}
run: |
tar --zstd -xf ~/backend-api.tar.zst ./backend/api/build
tar --zstd -xf ~/backend-app.tar.zst ./backend/app/build
tar --zstd -xf ~/backend-data.tar.zst ./backend/data/build
tar --zstd -xf ~/backend-misc.tar.zst ./backend/misc/build
tar --zstd -xf ~/backend-security.tar.zst ./backend/security/build
tar --zstd -xf ~/backend-testing.tar.zst ./backend/testing/build
tar --zstd -xf ~/backend-ktlint.tar.zst ./backend/ktlint/build
tar --zstd -xf ~/backend-development.tar.zst ./backend/development/build
tar --zstd -xf ~/ee-backend-app.tar.zst ./ee/backend/app/build
tar --zstd -xf ~/ee-backend-tests.tar.zst ./ee/backend/tests/build
tar --zstd -xf ~/backend-api.tar.zst $DEST_DIR/backend/api/build
tar --zstd -xf ~/backend-app.tar.zst $DEST_DIR/backend/app/build
tar --zstd -xf ~/backend-data.tar.zst $DEST_DIR/backend/data/build
tar --zstd -xf ~/backend-misc.tar.zst $DEST_DIR/backend/misc/build
tar --zstd -xf ~/backend-security.tar.zst $DEST_DIR/backend/security/build
tar --zstd -xf ~/backend-testing.tar.zst $DEST_DIR/backend/testing/build
tar --zstd -xf ~/backend-ktlint.tar.zst $DEST_DIR/backend/ktlint/build
tar --zstd -xf ~/backend-development.tar.zst $DEST_DIR/backend/development/build
tar --zstd -xf ~/ee-backend-app.tar.zst $DEST_DIR/ee/backend/app/build
tar --zstd -xf ~/ee-backend-tests.tar.zst $DEST_DIR/ee/backend/tests/build
tar --zstd -xf ~/backend-email.tar.zst $DEST_DIR/email/out
38 changes: 37 additions & 1 deletion .github/actions/setup-env/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,21 @@ inputs:
description: Whether to setup Node.js or not.
default: "true"
npm-cache:
description: Whether to setup npm cache or not.
description: Whether to setup npm cache or not. Irrelevant if node is disabled.
default: "true"
docker:
description: Whether to setup additional Docker build environment tools. Defaults to false.
default: "false"
docker-ghcr:
description: Whether to login to the GitHub Container Registry or not. Defaults to false.
default: "false"
docker-hub:
description: Whether to login to Docker Hub or not. Defaults to false.
default: "false"
docker-hub-username:
description: Username to use to authenticate to Docker Hub.
docker-hub-password:
description: Password to use to authenticate to Docker Hub.

runs:
using: composite
Expand Down Expand Up @@ -40,3 +53,26 @@ runs:
key: cache-node-modules-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
cache-node-modules-${{ runner.os }}-

- name: Setup QEMU for Docker
if: "${{ inputs.docker == 'true' }}"
uses: docker/setup-qemu-action@v3

- name: Setup Docker Buildx
if: "${{ inputs.docker == 'true' }}"
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
if: "${{ inputs.docker-hub == 'true' }}"
uses: docker/login-action@v3
with:
username: ${{ inputs.docker-hub-username }}
password: ${{ inputs.docker-hub-password }}

- name: Login to GitHub Container Registry
if: "${{ inputs.docker-ghcr == 'true' }}"
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
36 changes: 23 additions & 13 deletions .github/actions/upload-backend-build/action.yaml
Original file line number Diff line number Diff line change
@@ -1,24 +1,33 @@
name: Upload backend build
description: Compress and upload backend build result to GitHub artifacts

inputs:
source-directory:
description: Directory where the backend is. Defaults to current working directory.
default: .

runs:
using: composite
steps:
- name: Compress build assets
shell: sh
- name: Compress build results
shell: bash
env:
SRC_DIR: ${{ inputs.source-directory }}
run: |
tar --zstd -cf ~/backend-api.tar.zst ./backend/api/build
tar --zstd -cf ~/backend-app.tar.zst ./backend/app/build
tar --zstd -cf ~/backend-data.tar.zst ./backend/data/build
tar --zstd -cf ~/backend-misc.tar.zst ./backend/misc/build
tar --zstd -cf ~/backend-security.tar.zst ./backend/security/build
tar --zstd -cf ~/backend-testing.tar.zst ./backend/testing/build
tar --zstd -cf ~/backend-ktlint.tar.zst ./backend/ktlint/build
tar --zstd -cf ~/backend-development.tar.zst ./backend/development/build
tar --zstd -cf ~/ee-backend-app.tar.zst ./ee/backend/app/build
tar --zstd -cf ~/ee-backend-tests.tar.zst ./ee/backend/tests/build
tar --zstd -cf ~/backend-api.tar.zst $SRC_DIR/backend/api/build
tar --zstd -cf ~/backend-app.tar.zst $SRC_DIR/backend/app/build
tar --zstd -cf ~/backend-data.tar.zst $SRC_DIR/backend/data/build
tar --zstd -cf ~/backend-misc.tar.zst $SRC_DIR/backend/misc/build
tar --zstd -cf ~/backend-security.tar.zst $SRC_DIR/backend/security/build
tar --zstd -cf ~/backend-testing.tar.zst $SRC_DIR/backend/testing/build
tar --zstd -cf ~/backend-ktlint.tar.zst $SRC_DIR/backend/ktlint/build
tar --zstd -cf ~/backend-development.tar.zst $SRC_DIR/backend/development/build
tar --zstd -cf ~/ee-backend-app.tar.zst $SRC_DIR/ee/backend/app/build
tar --zstd -cf ~/ee-backend-tests.tar.zst $SRC_DIR/ee/backend/tests/build
tar --zstd -cf ~/backend-email.tar.zst $SRC_DIR/email/out
Comment on lines +12 to +27
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Guard tar calls; they fail when directories are absent.

If any of these paths don’t exist (e.g., SKIP_EMAIL_BUILD=true), tar exits non-zero and the step fails.

Apply:

-    - name: Compress build results
-      shell: bash
-      env:
-        SRC_DIR: ${{ inputs.source-directory }}
-      run: |
-        tar --zstd -cf ~/backend-api.tar.zst $SRC_DIR/backend/api/build
-        tar --zstd -cf ~/backend-app.tar.zst $SRC_DIR/backend/app/build
-        tar --zstd -cf ~/backend-data.tar.zst $SRC_DIR/backend/data/build
-        tar --zstd -cf ~/backend-misc.tar.zst $SRC_DIR/backend/misc/build
-        tar --zstd -cf ~/backend-security.tar.zst $SRC_DIR/backend/security/build
-        tar --zstd -cf ~/backend-testing.tar.zst $SRC_DIR/backend/testing/build
-        tar --zstd -cf ~/backend-ktlint.tar.zst $SRC_DIR/backend/ktlint/build
-        tar --zstd -cf ~/backend-development.tar.zst $SRC_DIR/backend/development/build
-        tar --zstd -cf ~/ee-backend-app.tar.zst $SRC_DIR/ee/backend/app/build
-        tar --zstd -cf ~/ee-backend-tests.tar.zst $SRC_DIR/ee/backend/tests/build
-        tar --zstd -cf ~/backend-email.tar.zst $SRC_DIR/email/out
+    - name: Compress build results
+      shell: bash
+      env:
+        SRC_DIR: ${{ inputs.source-directory }}
+      run: |
+        set -euo pipefail
+        pack_if_exists() {
+          local out="$1"; shift
+          local dir="$1"; shift
+          if [[ -d "$dir" ]]; then
+            tar --zstd -cf "$out" "$dir"
+          else
+            echo "Skipping: $dir does not exist"
+          fi
+        }
+        pack_if_exists "$HOME/backend-api.tar.zst"        "$SRC_DIR/backend/api/build"
+        pack_if_exists "$HOME/backend-app.tar.zst"        "$SRC_DIR/backend/app/build"
+        pack_if_exists "$HOME/backend-data.tar.zst"       "$SRC_DIR/backend/data/build"
+        pack_if_exists "$HOME/backend-misc.tar.zst"       "$SRC_DIR/backend/misc/build"
+        pack_if_exists "$HOME/backend-security.tar.zst"   "$SRC_DIR/backend/security/build"
+        pack_if_exists "$HOME/backend-testing.tar.zst"    "$SRC_DIR/backend/testing/build"
+        pack_if_exists "$HOME/backend-ktlint.tar.zst"     "$SRC_DIR/backend/ktlint/build"
+        pack_if_exists "$HOME/backend-development.tar.zst" "$SRC_DIR/backend/development/build"
+        pack_if_exists "$HOME/ee-backend-app.tar.zst"     "$SRC_DIR/ee/backend/app/build"
+        pack_if_exists "$HOME/ee-backend-tests.tar.zst"   "$SRC_DIR/ee/backend/tests/build"
+        pack_if_exists "$HOME/backend-email.tar.zst"      "$SRC_DIR/email/out"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Compress build results
shell: bash
env:
SRC_DIR: ${{ inputs.source-directory }}
run: |
tar --zstd -cf ~/backend-api.tar.zst ./backend/api/build
tar --zstd -cf ~/backend-app.tar.zst ./backend/app/build
tar --zstd -cf ~/backend-data.tar.zst ./backend/data/build
tar --zstd -cf ~/backend-misc.tar.zst ./backend/misc/build
tar --zstd -cf ~/backend-security.tar.zst ./backend/security/build
tar --zstd -cf ~/backend-testing.tar.zst ./backend/testing/build
tar --zstd -cf ~/backend-ktlint.tar.zst ./backend/ktlint/build
tar --zstd -cf ~/backend-development.tar.zst ./backend/development/build
tar --zstd -cf ~/ee-backend-app.tar.zst ./ee/backend/app/build
tar --zstd -cf ~/ee-backend-tests.tar.zst ./ee/backend/tests/build
tar --zstd -cf ~/backend-api.tar.zst $SRC_DIR/backend/api/build
tar --zstd -cf ~/backend-app.tar.zst $SRC_DIR/backend/app/build
tar --zstd -cf ~/backend-data.tar.zst $SRC_DIR/backend/data/build
tar --zstd -cf ~/backend-misc.tar.zst $SRC_DIR/backend/misc/build
tar --zstd -cf ~/backend-security.tar.zst $SRC_DIR/backend/security/build
tar --zstd -cf ~/backend-testing.tar.zst $SRC_DIR/backend/testing/build
tar --zstd -cf ~/backend-ktlint.tar.zst $SRC_DIR/backend/ktlint/build
tar --zstd -cf ~/backend-development.tar.zst $SRC_DIR/backend/development/build
tar --zstd -cf ~/ee-backend-app.tar.zst $SRC_DIR/ee/backend/app/build
tar --zstd -cf ~/ee-backend-tests.tar.zst $SRC_DIR/ee/backend/tests/build
tar --zstd -cf ~/backend-email.tar.zst $SRC_DIR/email/out
- name: Compress build results
shell: bash
env:
SRC_DIR: ${{ inputs.source-directory }}
run: |
set -euo pipefail
pack_if_exists() {
local out="$1"; shift
local dir="$1"; shift
if [[ -d "$dir" ]]; then
tar --zstd -cf "$out" "$dir"
else
echo "Skipping: $dir does not exist"
fi
}
pack_if_exists "$HOME/backend-api.tar.zst" "$SRC_DIR/backend/api/build"
pack_if_exists "$HOME/backend-app.tar.zst" "$SRC_DIR/backend/app/build"
pack_if_exists "$HOME/backend-data.tar.zst" "$SRC_DIR/backend/data/build"
pack_if_exists "$HOME/backend-misc.tar.zst" "$SRC_DIR/backend/misc/build"
pack_if_exists "$HOME/backend-security.tar.zst" "$SRC_DIR/backend/security/build"
pack_if_exists "$HOME/backend-testing.tar.zst" "$SRC_DIR/backend/testing/build"
pack_if_exists "$HOME/backend-ktlint.tar.zst" "$SRC_DIR/backend/ktlint/build"
pack_if_exists "$HOME/backend-development.tar.zst" "$SRC_DIR/backend/development/build"
pack_if_exists "$HOME/ee-backend-app.tar.zst" "$SRC_DIR/ee/backend/app/build"
pack_if_exists "$HOME/ee-backend-tests.tar.zst" "$SRC_DIR/ee/backend/tests/build"
pack_if_exists "$HOME/backend-email.tar.zst" "$SRC_DIR/email/out"
🤖 Prompt for AI Agents
.github/actions/upload-backend-build/action.yaml around lines 12 to 27: the tar
commands will cause the step to fail if any source directory is missing; guard
each tar invocation by first checking the target path exists (e.g. test with [
-e ] or [ -d ]) and only run tar when it does, or alternatively use a tar option
that ignores missing inputs if available; ensure the step still creates or skips
artifacts deterministically and preserves exit codes for real failures.


- uses: actions/upload-artifact@v4
- name: Upload backend build result
uses: actions/upload-artifact@v4
with:
name: backend
path: |
Expand All @@ -32,3 +41,4 @@ runs:
~/backend-development.tar.zst
~/ee-backend-app.tar.zst
~/ee-backend-tests.tar.zst
~/backend-email.tar.zst
2 changes: 1 addition & 1 deletion .github/workflows/inactive-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v5
- uses: actions/stale@v9
with:
days-before-issue-stale: 30
days-before-issue-close: 14
Expand Down
103 changes: 0 additions & 103 deletions .github/workflows/prerelease-alpha.yml

This file was deleted.

61 changes: 0 additions & 61 deletions .github/workflows/preview.yml

This file was deleted.

Loading
Loading