501e1b7e23
## 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>
4.5 KiB
4.5 KiB
[0.1.2] - 2026-04-01
Patch Changes
- fix: handle Docker registry authentication gracefully in release workflow
- fix: run unit tests on branch commits, skip main branch
- feat: add test workflow for every commit
- trigger: release with test-capable image
- feat: build test-capable image, run tests, then build production image
- trigger: release workflow
- fix: release workflow should not commit, only tag
- trigger: manual workflow trigger for docker.notsosm.art
- fix: update Docker build script to use docker.notsosm.art registry
- fix: update workflow to use docker.notsosm.art registry
- trigger: manual workflow trigger
- fix: update workflow to use correct Docker registries
- feat: add Gitea Actions release workflow
- feat: add view match link to admin matches page
[0.1.1] - 2026-04-01
Patch Changes
- Merge branch 'feat/database-test-safety' of ssh://git.notsosm.art/david/euchre_camp
- fix: use ELO change instead of win rate for best partner calculation
- fix: remove hardcoded passwords from docker-compose generation
- fix: load .env.development in test setup files
- fix: remove hardcoded database URLs and use environment variables
- fix: set DATABASE_URL for acceptance tests
- feat: add database test safety configuration
- fix: allowTies not saved when editing tournaments (closes #6)
- docs: add development database and testing documentation
- feat: set up development database and test cleanup utilities
- fix: improve availablePlayers query to handle undefined playerId
- fix: handle empty playerId string in user edit API
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.0] - 2026-03-31
Added
- Authentication System: Complete Better Auth integration with session management
- Authorization (RBAC): Role-based access control with player, tournament_admin, club_admin, and site_admin roles
- Tournament Management: Full CRUD operations with multiple formats (round-robin, single/double elimination, Swiss)
- Rating Systems: Support for Elo, Glicko2, and OpenSkill rating calculations
- Admin Panel: Comprehensive admin interface for managing players, tournaments, and matches
- Player Profiles: Detailed player statistics with partnership analytics
- Match Recording: CSV upload functionality for batch match entry
- Development Database: Isolated development database for testing
- Test Cleanup System: Automatic cleanup of test records
- Production Database Cleanup: Tools to remove test data while preserving real data
- Semantic Versioning: Git tagging and Docker image tagging system
Fixed
- Session Refresh: Fixed navigation not updating immediately after login (closes #6)
- allowTies Save Bug: Fixed "Allow Ties" checkbox not being saved when editing tournaments
- Next.js 16 Compatibility: Fixed params Promise handling across all API routes and pages
- Match Diagram Positioning: Fixed player positioning in match diagrams
Changed
- Database: Migrated from SQLite to PostgreSQL with production-ready configuration
- Docker: Updated image tagging to use versioned tags (e.g., v0.1.0, latest)
- Testing: Improved test coverage with 103 passing unit tests
- Documentation: Added comprehensive README with development setup instructions
Removed
- N/A
[0.0.1] - Initial Development
Added
- Basic database schema for Euchre tournament management
- Initial Next.js application structure
- Basic navigation and layout
- Player rankings page
Release Process
This project follows semantic versioning (Semver):
-
Version Format:
MAJOR.MINOR.PATCHMAJOR: Breaking changes (API changes, database migrations requiring data migration)MINOR: New features (backward compatible)PATCH: Bug fixes, security updates
-
Pre-release Versions:
MAJOR.MINOR.PATCH-alpha.N,MAJOR.MINOR.PATCH-beta.N,MAJOR.MINOR.PATCH-rc.N -
Creating a Release:
# Bump version npm run version:patch # or version:minor, version:major # Create git tag git tag -a v0.1.0 -m "Release v0.1.0" # Push changes and tag git push origin main git push origin v0.1.0 # Build and push Docker images npm run docker:build:push # Create release in Gitea tea release create v0.1.0 --title "Release v0.1.0" --note-file CHANGELOG.md