Repository navigation
Commit 72101dc
Fix GitHub Action failures on master branch (#324)
* Fix GitHub Action failures on master branch
This commit addresses two types of test failures:
1. macOS test failures: Updated golden test files to use bash 5.3 instead of bash 5.2, reflecting GitHub Actions' update of macOS-14 runners.
2. Docker Compose test failures: Fixed postgres startup issues by:
- **ROOT CAUSE**: GitHub Actions environment change between April and October 2025 causing Docker volume permission issues
- **FIX**: Pre-create volume with correct permissions (chmod 777) before starting containers
- Restored PGDATA: /var/lib/postgresql/data/pgdata (was in working April config)
- Added tmpfs mount for /var/run/postgresql
- Using CMD-SHELL format with database name: pg_isready -U postgres -d hishtory
- Adjusting timing parameters per Docker docs (interval: 10s, timeout: 10s, start_period: 30s, retries: 5)
- Replaced depends_on service_healthy with explicit wait loop in workflow
- Added comprehensive debug logging showing permission errors
Debug logs revealed "mkdir: cannot create directory '/var/lib/postgresql/data': Permission denied". This configuration worked in April 2025 but fails in October, indicating a GitHub Actions Docker environment change. The workaround creates the volume and fixes permissions before starting services.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix Docker Compose test by setting proper volume ownership
Instead of modifying docker-compose.yml (which real users depend on),
fix the permission issue in the test workflow by:
- Setting volume ownership to postgres user (uid 999)
- Pre-creating the pgdata directory with proper permissions
This maintains compatibility with the production docker-compose.yml
while fixing the test environment permission issues.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Simplify volume permission setup
The previous approach created directory structure that interfered
with Docker's mount process. Now we:
- Create the volume
- Set ownership to postgres user (999:999) on the volume root
- Let postgres create its own directory structure
This avoids mount point conflicts while still fixing permissions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Use docker-compose override for test environment
Instead of modifying the production docker-compose.yml, create a
test-specific override file that uses an anonymous volume for postgres.
This avoids the permission issues in GitHub Actions while keeping
the production configuration unchanged for real users.
The override file is layered on top of the main docker-compose.yml
using multiple -f flags in the test workflow.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Use tmpfs for postgres data in test environment
The anonymous volume approach still had permission issues.
Using tmpfs for /var/lib/postgresql/data bypasses volume
permission problems entirely since it's a memory filesystem.
This is acceptable for testing since we don't need persistence.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Use /tmp/pgdata for test environment
Instead of trying to override the volume mount with tmpfs
(which creates conflicts), change PGDATA to /tmp/pgdata which
is writable by the postgres user. Use !reset to clear volumes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Revert docker-compose.yml to avoid changing production config
The test environment uses docker-compose.test.yml override instead.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Override depends_on to remove service_healthy condition in tests
The main docker-compose.yml uses service_healthy which doesn't work
well with the /tmp/pgdata setup. The workflow script handles the
waiting explicitly instead.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Update TestStatusFullConfig golden for filterwhitespaceprefix
The golden file was missing the filterwhitespaceprefix config field
that is now included in the status output.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Remove debug logging from docker-compose-test workflow
Clean up the workflow by removing verbose debug output:
- Container status checks
- Verbose wait loop messages
- Log upload artifacts
Keep only essential functionality for cleaner output.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Update remaining bash 5.3 golden files for macOS
Fix remaining golden files that were still using bash-5.2:
- testControlR-bash-Disabled-darwin
- testControlR-SelectMultiline-bash-darwin
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 06241cb commit 72101dc
7 files changed
Lines changed: 25 additions & 12 deletions
File tree
- .github/workflows
- backend/server
- client/testdata
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
| 2 | + | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
0 commit comments