first commit
This commit is contained in:
+73
@@ -0,0 +1,73 @@
|
||||
# Releases
|
||||
|
||||
Releases follow the pattern `v{SEMVER}-{STADIUM}` (e.g., `v1.0.0-azteca`). Codenames are drawn alphabetically from the [stadium list](CHANGELOG.md#stadium-release-names) of famous football stadiums that hosted FIFA World Cup matches.
|
||||
|
||||
## Workflow
|
||||
|
||||
### 1. Create a Release Branch
|
||||
|
||||
Branch protection prevents direct pushes to `master`, so all release prep goes through a PR:
|
||||
|
||||
```bash
|
||||
git checkout master && git pull
|
||||
git checkout -b release/v1.0.0-azteca
|
||||
```
|
||||
|
||||
### 2. Update CHANGELOG.md
|
||||
|
||||
Move items from `[Unreleased]` to a new release section in [CHANGELOG.md](CHANGELOG.md):
|
||||
|
||||
```bash
|
||||
# Move items from [Unreleased] to new release section
|
||||
# Example: [1.0.0 - azteca] - 2026-01-22
|
||||
git add CHANGELOG.md
|
||||
git commit -m "docs: prepare changelog for v1.0.0-azteca release"
|
||||
git push origin release/v1.0.0-azteca
|
||||
# Open a PR, get it reviewed, and merge into master
|
||||
```
|
||||
|
||||
### Pre-release Checklist
|
||||
|
||||
Before creating the tag, verify all of the following:
|
||||
|
||||
- [ ] `CHANGELOG.md` `[Unreleased]` section is moved to a new versioned release entry
|
||||
- [ ] `dotnet build --configuration Release` passes
|
||||
- [ ] `dotnet test --settings .runsettings` passes
|
||||
- [ ] Stadium name is valid and follows alphabetical order (see [stadium list](CHANGELOG.md#stadium-release-names))
|
||||
- [ ] All CI checks on `master` are green
|
||||
|
||||
### 3. Create and Push Tag
|
||||
|
||||
After the PR is merged, create and push the version tag from `master`:
|
||||
|
||||
```bash
|
||||
git checkout master && git pull
|
||||
git tag -a v1.0.0-azteca -m "Release 1.0.0 - Azteca"
|
||||
git push origin v1.0.0-azteca
|
||||
```
|
||||
|
||||
### 4. Automated CD Workflow
|
||||
|
||||
Pushing the tag triggers the CD workflow which automatically:
|
||||
|
||||
1. Validates the stadium name
|
||||
2. Builds and tests the project in Release configuration
|
||||
3. Publishes Docker images to GitHub Container Registry with three tags
|
||||
4. Creates a GitHub Release with auto-generated changelog from commits
|
||||
|
||||
> 💡 Always update CHANGELOG.md before creating the tag. See [CHANGELOG.md](CHANGELOG.md) for the complete stadium list (A-Z) and release history.
|
||||
|
||||
## Docker Pull
|
||||
|
||||
Each release publishes multiple tags for flexibility:
|
||||
|
||||
```bash
|
||||
# By semantic version (recommended for production)
|
||||
docker pull ghcr.io/nanotaboada/dotnet-samples-aspnetcore-webapi:1.0.0
|
||||
|
||||
# By stadium name (memorable alternative)
|
||||
docker pull ghcr.io/nanotaboada/dotnet-samples-aspnetcore-webapi:azteca
|
||||
|
||||
# Latest release
|
||||
docker pull ghcr.io/nanotaboada/dotnet-samples-aspnetcore-webapi:latest
|
||||
```
|
||||
Reference in New Issue
Block a user