- Create Dockerfile.ci-base with Bun, Node.js, and Playwright pre-installed
- Add build-ci-images workflow that triggers on package.json changes
- Update PR workflow to use custom ci-base image instead of GitHub Actions
- Update Release workflow to use custom ci-base image
- Remove dependency on oven/setup-bun@v2 GitHub Action
- Remove dependency on docker/setup-buildx-action GitHub Action
- Images are automatically built when dependencies in package.json update
- Weekly scheduled rebuild ensures tools stay current
This resolves the 'authentication required: Repository not found' error
when Gitea Actions tries to clone GitHub Actions from external repositories.
- Update all test files to use named mock variables instead of inline mocks
- Clear mock history in beforeEach instead of using mock.restore()
- Add default mock implementations stored at module level
- Document that tests should not use --randomize flag due to mock.module() limitations
- All 89 unit tests pass consistently without randomization
- Update Dockerfile to use oven/bun:alpine image
- Update PR workflow to use Bun (oven/setup-bun action)
- Update Test workflow to use Bun
- Update Release workflow to use Bun
- Remove test.yml workflow (redundant with PR workflow)
- Update Docker build commands to use Bun
- Docker build verified working
- Set output variable 'committed' in commit step
- Add conditional execution to all subsequent steps
- Only create tag, build Docker images, and deploy if commit was successful
- Fixed bump-version.js to properly handle --yes flag in CI environments
- Added check to skip commit if no changes to package.json or CHANGELOG.md
- Ensured script exits cleanly after version bump with --yes flag
## Summary
This PR fixes the release workflow to properly handle version bumping on PR merge and uses the new Docker registry authentication secrets.
## Changes
### Release Workflow (release.yml)
- **Version Bumping**: Now automatically bumps version on PR merge
- Determines bump type from commit messages (major/minor/patch)
- Commits version bump to `package.json` and `CHANGELOG.md`
- Creates git tag for the release
- **Docker Registry Auth**: Uses `DOCKER_LOGIN` and `DOCKER_PASSWORD` secrets
- Falls back gracefully if secrets are not configured
- **Tag Handling**: Checks if tag exists before creating (prevents failures)
### PR Workflow (pr.yml) - NEW
- Runs unit tests on every PR
- Analyzes commits to suggest bump type
- Comments the suggested bump type on the PR
### Documentation
- Added `WORKFLOW_ARCHITECTURE.md` explaining the workflow design
## Workflow Architecture
**Two-step process:**
1. **PR Workflow** (on PR): Analyzes commits and suggests bump type
2. **Release Workflow** (on merge): Bumps version, creates tag, builds Docker image
## Benefits
1. **No CI Loops**: Version bump commits are detected and skipped
2. **Clear Communication**: PR comments inform developers of version impact
3. **Semantic Versioning**: Automated adherence to semver rules
4. **Traceability**: Git tags and changelog reflect all changes
## Testing
The new workflows will be tested when this PR is merged.
Closes#13 (Add database test safety configuration)
Reviewed-on: #17
Co-authored-by: David Gwilliam <dhgwilliam@gmail.com>
Co-committed-by: David Gwilliam <dhgwilliam@gmail.com>