fix: version bumping and Docker registry authentication (#17)
## 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>
This commit was merged in pull request #17.
This commit is contained in:
@@ -109,10 +109,50 @@ npm run db:setup-postgres
|
||||
**Note:** The database provider is automatically detected by Better Auth and Prisma.
|
||||
|
||||
### Running Tests
|
||||
|
||||
**Using just (recommended):**
|
||||
- **All tests**: `just test` (unit + acceptance with SQLite)
|
||||
- **Unit tests**: `just test-unit`
|
||||
- **Acceptance tests (SQLite)**: `just test-acceptance-sqlite`
|
||||
- **Acceptance tests (PostgreSQL)**: `just test-acceptance-postgres`
|
||||
- **PR validation**: `just pr-validate` (what runs on pull requests)
|
||||
|
||||
**Using npm scripts:**
|
||||
- **Unit tests**: `npm run test`
|
||||
- **Acceptance tests**: `npm run test:acceptance`
|
||||
- **Specific test**: `npm run test:acceptance -- --grep "test name"`
|
||||
|
||||
**CI-style acceptance tests with SQLite:**
|
||||
```bash
|
||||
DATABASE_PROVIDER=sqlite DATABASE_URL=file:./prisma/ci.db npm run test:acceptance
|
||||
```
|
||||
|
||||
### CI/CD Pipeline
|
||||
The project uses Gitea Actions for continuous integration:
|
||||
|
||||
**PR Workflow** (`.gitea/workflows/pr.yml`):
|
||||
- Runs on pull requests to main
|
||||
- Executes unit tests and acceptance tests with SQLite
|
||||
- Analyzes commits for semantic versioning
|
||||
- Comments suggested bump type on PRs
|
||||
|
||||
**Test Workflow** (`.gitea/workflows/test.yml`):
|
||||
- Runs on all branch pushes
|
||||
- Executes unit tests for quick feedback
|
||||
- Skips auto-generated version bump commits
|
||||
|
||||
**Release Workflow** (`.gitea/workflows/release.yml`):
|
||||
- Runs on main branch pushes
|
||||
- Determines version bump type
|
||||
- Bumps version and creates git tags
|
||||
- Builds Docker images and runs tests
|
||||
- Pushes to registry and deploys
|
||||
|
||||
**Database Strategy**:
|
||||
- CI tests use SQLite (fast, no server required)
|
||||
- Production uses PostgreSQL
|
||||
- Switch with `DATABASE_PROVIDER` environment variable
|
||||
|
||||
## Key Files
|
||||
|
||||
### Configuration
|
||||
@@ -170,6 +210,10 @@ npm run db:setup-postgres
|
||||
- Utilities: camelCase (e.g., `elo-utils.ts`)
|
||||
- Tests: `.test.ts` or `.test.tsx` suffix
|
||||
|
||||
## File Organization
|
||||
|
||||
See [docs/FILE_ORGANIZATION.md](docs/FILE_ORGANIZATION.md) for detailed file organization and structure.
|
||||
|
||||
## Resources
|
||||
|
||||
- **Better Auth Docs**: https://better-auth.com/docs
|
||||
|
||||
Reference in New Issue
Block a user