You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docker run hookdeck/hookdeck-cli:v1.2.3-beta.0 version
1122
1122
```
1123
1123
1124
-
### Production Releases
1124
+
##Release Process
1125
1125
1126
-
Production releases are created from the `main`branch using GitHub's release interface.
1126
+
The release workflow supports tagging from ANY branch - it automatically detects which branch contains the tag.
1127
1127
1128
-
**Process:**
1128
+
### Stable Release (Preferred Method: GitHub UI)
1129
1129
1130
-
1. Merge the `next` branch into `main`:
1131
-
```sh
1132
-
git checkout main
1133
-
git pull origin main
1134
-
git merge next
1135
-
git push origin main
1136
-
```
1130
+
1. Ensure all tests pass on `main`
1137
1131
2. Go to the [GitHub Releases page](https://github.com/hookdeck/hookdeck-cli/releases)
1138
1132
3. Click "Draft a new release"
1139
1133
4. Create a new tag with a stable version (e.g., `v1.3.0`)
@@ -1150,7 +1144,82 @@ The GitHub Actions workflow will automatically:
1150
1144
- Scoop: `hookdeck` package
1151
1145
- Docker: Updates both the version tag and `latest`
1152
1146
1153
-
**Note:** Only stable releases (without pre-release identifiers) will update the `latest` tags across all distribution channels.
1147
+
**Alternative (Command Line):**
1148
+
```bash
1149
+
git checkout main
1150
+
git tag v1.3.0
1151
+
git push origin v1.3.0
1152
+
# Then create release notes on GitHub Releases page
1153
+
```
1154
+
1155
+
### Pre-release from Main (General Beta Testing)
1156
+
1157
+
**Preferred Method: GitHub UI**
1158
+
1. Ensure `main` branch is in the desired state
1159
+
2. Go to the [GitHub Releases page](https://github.com/hookdeck/hookdeck-cli/releases)
1160
+
3. Click "Draft a new release"
1161
+
4. Create a new tag with pre-release version (e.g., `v1.3.0-beta.1`)
1162
+
5. Target the `main` branch
1163
+
6. Check "Set as a pre-release"
1164
+
7. Publish the release
1165
+
8. GitHub Actions will build and publish with npm tag `beta`
1166
+
1167
+
**Alternative (Command Line):**
1168
+
```bash
1169
+
git checkout main
1170
+
git tag v1.3.0-beta.1
1171
+
git push origin v1.3.0-beta.1
1172
+
```
1173
+
1174
+
### Pre-release from Feature Branch (Feature-Specific Testing)
1175
+
1176
+
For testing a specific feature in isolation before merging to main:
1177
+
1178
+
**Preferred Method: GitHub UI**
1179
+
1. Ensure your feature branch is pushed to origin
1180
+
2. Go to the [GitHub Releases page](https://github.com/hookdeck/hookdeck-cli/releases)
1181
+
3. Click "Draft a new release"
1182
+
4. Create a new tag with pre-release version (e.g., `v1.3.0-beta.1`)
1183
+
5. Target your feature branch (e.g., `feat/my-feature`)
1184
+
6. Check "Set as a pre-release"
1185
+
7. Add notes about what's being tested
1186
+
8. Publish the release
1187
+
9. GitHub Actions will automatically detect the branch and build from it
1188
+
1189
+
**Alternative (Command Line):**
1190
+
```bash
1191
+
git checkout feat/my-feature
1192
+
git tag v1.3.0-beta.1
1193
+
git push origin v1.3.0-beta.1
1194
+
# Then create release notes on GitHub Releases page
1195
+
```
1196
+
1197
+
**Note:** Only stable releases (without pre-release identifiers like `-beta`, `-alpha`) will update the `latest` tags across all distribution channels.
1198
+
1199
+
## Repository Setup
1200
+
1201
+
### GitHub Repository Settings
1202
+
1203
+
To maintain code quality and protect the main branch, configure the following settings in your GitHub repository:
1204
+
1205
+
**Default Branch:**
1206
+
1. Go to Settings → Branches
1207
+
2. Set default branch to `main` (if not already set)
1208
+
1209
+
**Branch Protection Rules for `main`:**
1210
+
1. Go to Settings → Branches → Branch protection rules
1211
+
2. Add rule for `main` branch
1212
+
3. Enable the following settings:
1213
+
-**Require a pull request before merging**
1214
+
- Require approvals: 1 (or as needed for your team)
1215
+
-**Require status checks to pass before merging**
1216
+
- Require branches to be up to date before merging
1217
+
- Add status check: `build-linux`, `build-mac`, `build-windows` (from test workflow)
1218
+
-**Do not allow bypassing the above settings**
1219
+
-**Restrict force pushes** (recommended)
1220
+
-**Restrict deletions** (recommended)
1221
+
1222
+
These settings ensure that all changes to `main` go through proper review and testing before being merged.
0 commit comments