Skip to content

Commit 094198c

Browse files
authored
Merge pull request #144 from codebar-ag/main
main/production
2 parents ae5ce9e + 1f1f25e commit 094198c

396 files changed

Lines changed: 25982 additions & 24053 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.ci

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@ SESSION_DRIVER=database
3434
SESSION_LIFETIME=120
3535

3636
# Mail
37-
MAIL_MAILER=log
37+
MAIL_MAILER=smtp
38+
MAIL_HOST=localhost
39+
MAIL_PORT=1025
40+
MAIL_USERNAME=null
41+
MAIL_PASSWORD=null
42+
MAIL_ENCRYPTION=null
3843
MAIL_FROM_ADDRESS="no-reply@solidtime.test"
3944
MAIL_FROM_NAME="solidtime"
4045
MAIL_REPLY_TO_ADDRESS="hello@solidtime.test"
@@ -56,3 +61,6 @@ TELESCOPE_ENABLED=false
5661

5762
# Services
5863
GOTENBERG_URL=http://0.0.0.0:3000
64+
65+
# Octane
66+
OCTANE_SERVER=frankenphp

.github/workflows/playwright.yml

Lines changed: 56 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,18 @@ jobs:
1010
if: false # Temporarily disabled
1111
runs-on: ubuntu-latest
1212
timeout-minutes: 60
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
shardIndex: [1, 2, 3, 4, 5, 6, 7, 8]
17+
shardTotal: [8]
1318

1419
services:
1520
mailpit:
1621
image: 'axllent/mailpit:latest'
22+
ports:
23+
- 1025:1025
24+
- 8025:8025
1725
pgsql_test:
1826
image: postgres:15
1927
env:
@@ -61,22 +69,63 @@ jobs:
6169
- name: "Build Frontend"
6270
run: npm run build
6371

64-
- name: "Run Laravel Server"
65-
run: php artisan serve > /dev/null 2>&1 &
72+
- name: "Install FrankenPHP"
73+
run: |
74+
ARCH="$(uname -m)"
75+
curl -fsSL "https://github.com/dunglas/frankenphp/releases/latest/download/frankenphp-linux-${ARCH}" -o /usr/local/bin/frankenphp
76+
chmod +x /usr/local/bin/frankenphp
77+
78+
- name: "Run Laravel Octane Server"
79+
run: php artisan octane:start --server=frankenphp --host=127.0.0.1 --port=8000 --workers=4 --max-requests=500 > /dev/null 2>&1 &
80+
env:
81+
OCTANE_SERVER: frankenphp
6682

6783
- name: "Install Playwright Browsers"
6884
run: npx playwright install --with-deps
6985

7086
- name: "Run Playwright tests"
71-
run: npx playwright test
87+
run: npx playwright test --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
7288
env:
7389
PLAYWRIGHT_BASE_URL: 'http://127.0.0.1:8000'
90+
MAILPIT_BASE_URL: 'http://localhost:8025'
7491

75-
- name: "Upload test results"
92+
- name: "Upload blob report"
7693
uses: actions/upload-artifact@v4
7794
if: always()
7895
with:
79-
name: test-results
80-
path: test-results/
81-
retention-days: 30
96+
name: blob-report-${{ matrix.shardIndex }}
97+
path: blob-report/
98+
retention-days: 7
99+
100+
merge-reports:
101+
if: needs.test.result == 'success'
102+
needs: [test]
103+
runs-on: ubuntu-latest
104+
steps:
105+
- name: "Checkout code"
106+
uses: actions/checkout@v4
107+
108+
- name: "Setup node"
109+
uses: actions/setup-node@v4
110+
with:
111+
node-version: '20.x'
112+
113+
- name: "Install dependencies"
114+
run: npm ci
82115

116+
- name: "Download blob reports"
117+
uses: actions/download-artifact@v4
118+
with:
119+
path: all-blob-reports
120+
pattern: blob-report-*
121+
merge-multiple: true
122+
123+
- name: "Merge reports"
124+
run: npx playwright merge-reports --reporter html ./all-blob-reports
125+
126+
- name: "Upload merged HTML report"
127+
uses: actions/upload-artifact@v4
128+
with:
129+
name: playwright-report
130+
path: playwright-report/
131+
retention-days: 30

INTERNAL_CHANGES_GUIDE.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -245,16 +245,16 @@ Numbers are: [insertions] [deletions] [path]
245245
### High-Level Notes by Category
246246
- **Repo hygiene:** Issue/PR templates removed; internal `INTERNAL_CHANGES_GUIDE.md` added; several project policy docs removed.
247247
- **CI:** Multiple GitHub workflows adjusted; some workflows removed; minor 1-line tweaks in remaining workflows.
248-
- **Backend:** Small changes in `ClientController`, `ProjectController`, and `ShareInertiaData` middleware; minor DB config tweak; Composer dependencies updated.
248+
- **Backend:** Client/Project API delete flows are enabled, original guard behavior is restored, and default index ordering matches pre-disable behavior; DB read/write host split remains in place.
249249
- **Docker:** Local and production Docker files removed (compose, Dockerfiles, configs, scripts).
250-
- **Frontend:** Multiple Vue components updated across Clients/Projects tables, dropdowns, and pages; navigation and layout tweaks; utility hooks adjusted.
250+
- **Frontend:** Clients/Projects search is restored, delete actions are available again from row menus, and table heading/status/billable-rate UI behavior is restored.
251251
- **Tests:** e2e tests (`clients.spec.ts`, `projects.spec.ts`) updated.
252252

253253
### API Behavior Changes (Upgrade Notes)
254-
- Clients API: `GET /api/v1/organizations/{org}/clients` now returns clients ordered by `name` ascending (was `created_at` desc). If you rely on ordering, update your consumers accordingly.
255-
- Projects API: `GET /api/v1/organizations/{org}/projects` now returns projects ordered by `name` ascending (was `created_at`-based ordering in some flows). If you relied on creation-time ordering, sort client-side or use a dedicated query param in future versions.
256-
- Clients API: `DELETE /api/v1/organizations/{org}/clients/{client}` is disabled. It now returns `200` with `{ message: "Client deletion disabled" }` and does not delete data.
257-
- Projects API: `DELETE /api/v1/organizations/{org}/projects/{project}` is disabled. It now returns `200` with `{ message: "Project deletion disabled" }` and does not delete data.
254+
- Clients API: `GET /api/v1/organizations/{org}/clients` default ordering is `created_at` descending.
255+
- Projects API: `GET /api/v1/organizations/{org}/projects` keeps creation-time-first ordering semantics (`created_at` descending in the index result).
256+
- Clients API: `DELETE /api/v1/organizations/{org}/clients/{client}` is enabled. It returns `400` when the client is still in use by projects; otherwise it deletes and returns `204`.
257+
- Projects API: `DELETE /api/v1/organizations/{org}/projects/{project}` is enabled. It returns `400` when still in use by tasks/time entries; otherwise it deletes related project members and returns `204`.
258258

259259
### Step-by-Step Protocol (detailed)
260260
1) Clean and position on base (or desired) revision.

0 commit comments

Comments
 (0)