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
To install the Hookdeck CLI on Linux without a package manager:
@@ -54,6 +72,8 @@ To install the Hookdeck CLI on Linux without a package manager:
54
72
2. Unzip the file: tar -xvf hookdeck_X.X.X_linux_amd64.tar.gz
55
73
3. Run the executable: ./hookdeck
56
74
75
+
For beta (pre-release) versions, download the `.deb` or `.rpm` packages from the [GitHub releases page](https://github.com/hookdeck/hookdeck-cli/releases) (look for releases marked as "Pre-release").
76
+
57
77
### Docker
58
78
59
79
The CLI is also available as a Docker image: [`hookdeck/hookdeck-cli`](https://hub.docker.com/r/hookdeck/hookdeck-cli).
@@ -63,6 +83,14 @@ docker run --rm -it hookdeck/hookdeck-cli version
63
83
hookdeck version x.y.z (beta)
64
84
```
65
85
86
+
To use a specific version (including beta releases), specify the version tag:
87
+
88
+
```sh
89
+
docker run --rm -it hookdeck/hookdeck-cli:v1.2.3-beta.1 version
90
+
```
91
+
92
+
Note: Beta releases do not update the `latest` tag. Only stable releases update `latest`.
93
+
66
94
If you want to login to your Hookdeck account with the CLI and persist
67
95
credentials, you can bind mount the `~/.config/hookdeck` directory:
68
96
@@ -643,6 +671,90 @@ docker run --rm -it \
643
671
http://host.docker.internal:1234
644
672
```
645
673
674
+
## Releasing
675
+
676
+
This section describes the branching strategy and release process for the Hookdeck CLI.
677
+
678
+
### Branching Strategy
679
+
680
+
The project uses two primary branches:
681
+
682
+
-**`main`** - The stable, production-ready branch. All production releases are created from this branch.
683
+
-**`next`** - The beta/pre-release branch. All new features are merged here first for testing before being promoted to `main`.
684
+
685
+
### Beta Releases
686
+
687
+
Beta releases allow you to publish pre-release versions for testing without blocking the `main` branch or affecting stable releases.
688
+
689
+
**Process:**
690
+
691
+
1. Ensure all desired features are merged into the `next` branch
692
+
2. Pull the latest changes locally:
693
+
```sh
694
+
git checkout next
695
+
git pull origin next
696
+
```
697
+
3. Create and push a beta tag with a pre-release identifier:
698
+
```sh
699
+
git tag v1.2.3-beta.0
700
+
git push origin v1.2.3-beta.0
701
+
```
702
+
4. The GitHub Actions workflow will automatically:
703
+
- Build binaries for all platforms (macOS, Linux, Windows)
704
+
- Create a GitHub pre-release (marked as "Pre-release")
705
+
- Publish to NPM with the `beta` tag
706
+
- Create beta packages:
707
+
- Homebrew: `hookdeck-beta` formula
708
+
- Scoop: `hookdeck-beta` package
709
+
- Docker: Tagged with the version (e.g., `v1.2.3-beta.0`), but not `latest`
710
+
711
+
**Installing beta releases:**
712
+
713
+
```sh
714
+
# NPM
715
+
npm install hookdeck-cli@beta -g
716
+
717
+
# Homebrew
718
+
brew install hookdeck/hookdeck/hookdeck-beta
719
+
720
+
# Scoop
721
+
scoop install hookdeck-beta
722
+
723
+
# Docker
724
+
docker run hookdeck/hookdeck-cli:v1.2.3-beta.0 version
725
+
```
726
+
727
+
### Production Releases
728
+
729
+
Production releases are created from the `main` branch using GitHub's release interface.
730
+
731
+
**Process:**
732
+
733
+
1. Merge the `next` branch into `main`:
734
+
```sh
735
+
git checkout main
736
+
git pull origin main
737
+
git merge next
738
+
git push origin main
739
+
```
740
+
2. Go to the [GitHub Releases page](https://github.com/hookdeck/hookdeck-cli/releases)
741
+
3. Click "Draft a new release"
742
+
4. Create a new tag with a stable version (e.g., `v1.3.0`)
743
+
5. Target the `main` branch
744
+
6. Generate release notes or write them manually
745
+
7. Publish the release
746
+
747
+
The GitHub Actions workflow will automatically:
748
+
- Build binaries for all platforms
749
+
- Create a stable GitHub release
750
+
- Publish to NPM with the `latest` tag
751
+
- Update package managers:
752
+
- Homebrew: `hookdeck` formula
753
+
- Scoop: `hookdeck` package
754
+
- Docker: Updates both the version tag and `latest`
755
+
756
+
**Note:** Only stable releases (without pre-release identifiers) will update the `latest` tags across all distribution channels.
0 commit comments