Compare commits

..

8 Commits

7 changed files with 57 additions and 80 deletions
+1 -2
View File
@@ -22,5 +22,4 @@ jobs:
docker-enabled: true
rolling-release-tag: "v1"
semver-config: "config-release.yaml"
secrets:
homebrew-tap-token: ${{ secrets.HOMEBREW_TAP_TOKEN }}
secrets: inherit
+16 -51
View File
@@ -7,7 +7,7 @@ before:
builds:
- id: semver-gen
main: .
binary: semver-gen
binary: semver-generator
env:
- CGO_ENABLED=0
goos:
@@ -24,7 +24,7 @@ builds:
archives:
- id: semver-gen
formats: [tar.gz]
name_template: "semver-gen-{{ .Version }}-{{ .Os }}-{{ .Arch }}"
name_template: "semver-generator-{{ .Os }}-{{ .Arch }}"
format_overrides:
- goos: windows
formats: [zip]
@@ -34,7 +34,7 @@ archives:
- config.yaml
checksum:
name_template: "semver-gen-{{ .Version }}-checksums.txt"
name_template: "semver-generator-checksums.txt"
algorithm: sha256
changelog:
@@ -55,59 +55,24 @@ release:
draft: false
prerelease: auto
dockers:
- id: semver-gen-amd64
goos: linux
goarch: amd64
ids:
- semver-gen
image_templates:
- "ghcr.io/lukaszraczylo/semver-generator:{{ .Version }}-amd64"
- "ghcr.io/lukaszraczylo/semver-generator:latest-amd64"
- "ghcr.io/lukaszraczylo/semver-generator:v1-amd64"
dockers_v2:
- images:
- "ghcr.io/lukaszraczylo/semver-generator"
tags:
- "{{ .Version }}"
- "latest"
- "v1"
platforms:
- linux/amd64
- linux/arm64
dockerfile: Dockerfile.goreleaser
use: buildx
build_flag_templates:
- "--platform=linux/amd64"
extra_files:
- config-release.yaml
- entrypoint.sh
- id: semver-gen-arm64
goos: linux
goarch: arm64
ids:
- semver-gen
image_templates:
- "ghcr.io/lukaszraczylo/semver-generator:{{ .Version }}-arm64"
- "ghcr.io/lukaszraczylo/semver-generator:latest-arm64"
- "ghcr.io/lukaszraczylo/semver-generator:v1-arm64"
dockerfile: Dockerfile.goreleaser
use: buildx
build_flag_templates:
- "--platform=linux/arm64"
extra_files:
- config-release.yaml
- entrypoint.sh
docker_manifests:
- name_template: "ghcr.io/lukaszraczylo/semver-generator:{{ .Version }}"
image_templates:
- "ghcr.io/lukaszraczylo/semver-generator:{{ .Version }}-amd64"
- "ghcr.io/lukaszraczylo/semver-generator:{{ .Version }}-arm64"
- name_template: "ghcr.io/lukaszraczylo/semver-generator:latest"
image_templates:
- "ghcr.io/lukaszraczylo/semver-generator:latest-amd64"
- "ghcr.io/lukaszraczylo/semver-generator:latest-arm64"
- name_template: "ghcr.io/lukaszraczylo/semver-generator:v1"
image_templates:
- "ghcr.io/lukaszraczylo/semver-generator:v1-amd64"
- "ghcr.io/lukaszraczylo/semver-generator:v1-arm64"
homebrew_casks:
- repository:
- name: semver-generator
repository:
owner: lukaszraczylo
name: homebrew-taps
token: "{{ .Env.HOMEBREW_TAP_TOKEN }}"
@@ -122,5 +87,5 @@ homebrew_casks:
install: |
if OS.mac?
system_command "/usr/bin/xattr",
args: ["-dr", "com.apple.quarantine", "#{staged_path}/semver-gen"]
args: ["-dr", "com.apple.quarantine", "#{staged_path}/semver-generator"]
end
+2 -1
View File
@@ -1,5 +1,6 @@
FROM ubuntu:jammy
COPY semver-gen /go/src/app/semver-gen
ARG TARGETPLATFORM
COPY ${TARGETPLATFORM}/semver-generator /go/src/app/semver-generator
COPY config-release.yaml /go/src/app/config.yaml
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
+8 -8
View File
@@ -52,7 +52,7 @@ export GITHUB_TOKEN=yourPersonalApiToken
##### Homebrew (macOS)
```bash
brew install --cask lukaszraczylo/taps/semver-gen
brew install --cask lukaszraczylo/taps/semver-generator
```
##### Manual Download
@@ -63,9 +63,9 @@ You can download latest versions of the binaries from the [release page](https:/
Darwin ARM64/AMD64, Linux ARM64/AMD64, Windows AMD64
```bash
bash$ ./semver-gen generate -r https://github.com/nextapps-de/winbox
bash$ semver-generator generate -r https://github.com/nextapps-de/winbox
SEMVER 9.0.10
bash$ ./semver-gen generate -l
bash$ semver-generator generate -l
SEMVER 5.1.1
```
@@ -73,8 +73,8 @@ SEMVER 5.1.1
```yaml
Usage:
semver-gen generate [flags]
semver-gen [command]
semver-generator generate [flags]
semver-generator [command]
Available Commands:
generate Generates semantic version
@@ -84,7 +84,7 @@ Flags:
-c, --config string Path to config file (default "semver.yaml")
-d, --debug Enable debug mode
-e, --existing Respect existing tags
-h, --help help for semver-gen
-h, --help help for semver-generator
-l, --local Use local repository
-r, --repository string Remote repository URL. (default "https://github.com/lukaszraczylo/simple-gql-client")
-b, --branch string Remote repository URL Branch. (default "main")
@@ -98,7 +98,7 @@ Flags:
The binary can update itself to the latest version:
```bash
semver-gen -u
semver-generator -u
```
This downloads the latest release for your platform directly from GitHub releases. No authentication is required.
@@ -217,7 +217,7 @@ wording:
* `blacklist`: terms to ignore when processing commits. Any commit containing these terms will be skipped in version calculations. Useful for ignoring merge commits, feature branch names, and other unwanted triggers.
* `wording`: words the program should look for in the git commits to increment (patch|minor|major)
### Good to know
### Good to knows
* Word matching uses fuzzy search AND is case INSENSITIVE
* I do not recommend using common words ( like "the" from the example configuration )
+19 -7
View File
@@ -209,7 +209,7 @@ func downloadBinary(url string) (string, error) {
}
// Create temp file
tempFile, err := os.CreateTemp("", "semver-gen-update-*")
tempFile, err := os.CreateTemp("", "semver-generator-update-*")
if err != nil {
return "", err
}
@@ -236,13 +236,13 @@ func downloadBinary(url string) (string, error) {
return tempPath, nil
}
// extractTarGz extracts the semver-gen binary from a tar.gz archive
// extractTarGz extracts the semver-generator binary from a tar.gz archive
func extractTarGz(r io.Reader, destFile *os.File) error {
// For simplicity, we'll download the whole archive to a temp file first,
// then use tar command to extract. This avoids adding archive/tar dependency.
// Create temp archive file
archiveFile, err := os.CreateTemp("", "semver-gen-archive-*.tar.gz")
archiveFile, err := os.CreateTemp("", "semver-generator-archive-*.tar.gz")
if err != nil {
return err
}
@@ -256,7 +256,7 @@ func extractTarGz(r io.Reader, destFile *os.File) error {
archiveFile.Close()
// Extract using tar command
extractDir, err := os.MkdirTemp("", "semver-gen-extract-*")
extractDir, err := os.MkdirTemp("", "semver-generator-extract-*")
if err != nil {
return err
}
@@ -268,22 +268,34 @@ func extractTarGz(r io.Reader, destFile *os.File) error {
return fmt.Errorf("failed to extract archive: %w", err)
}
// Find the semver-gen binary in the extracted files
// Find the binary in the extracted files
// Support both new name (semver-generator) and old name (semver-gen) for backwards compatibility
binaryPath := ""
entries, err := os.ReadDir(extractDir)
if err != nil {
return err
}
// First try to find semver-generator (new name)
for _, entry := range entries {
if entry.Name() == "semver-gen" || strings.HasPrefix(entry.Name(), "semver-gen") && !strings.Contains(entry.Name(), ".") {
if entry.Name() == "semver-generator" {
binaryPath = fmt.Sprintf("%s/%s", extractDir, entry.Name())
break
}
}
// Fallback to semver-gen (old name) for older releases
if binaryPath == "" {
return fmt.Errorf("semver-gen binary not found in archive")
for _, entry := range entries {
if entry.Name() == "semver-gen" {
binaryPath = fmt.Sprintf("%s/%s", extractDir, entry.Name())
break
}
}
}
if binaryPath == "" {
return fmt.Errorf("binary not found in archive (looked for semver-generator and semver-gen)")
}
// Copy the binary to the destination
+9 -9
View File
@@ -157,10 +157,10 @@
<div class="w-3 h-3 rounded-full bg-green-500"></div>
<span class="ml-2 text-gray-400 text-sm">terminal</span>
</div>
<pre class="text-gray-100 text-sm sm:text-base overflow-x-auto"><code><span class="text-gray-400">$</span> semver-gen generate -l
<pre class="text-gray-100 text-sm sm:text-base overflow-x-auto"><code><span class="text-gray-400">$</span> semver-generator generate -l
<span class="text-emerald-400">SEMVER</span> 1.5.2
<span class="text-gray-400">$</span> semver-gen generate -r https://github.com/user/repo
<span class="text-gray-400">$</span> semver-generator generate -r https://github.com/user/repo
<span class="text-emerald-400">SEMVER</span> 2.3.0</code></pre>
</div>
</div>
@@ -260,7 +260,7 @@
<i class="fas fa-beer mr-2 text-amber-500"></i>
Homebrew (macOS)
</h3>
<pre class="bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/semver-gen</code></pre>
<pre class="bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto"><code>brew install --cask lukaszraczylo/taps/semver-generator</code></pre>
</div>
<div class="glass p-6 rounded-xl">
<h3 class="font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
@@ -295,22 +295,22 @@
CLI Usage
</h3>
<pre class="bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto mb-4"><code><span class="text-gray-400"># Local repository</span>
semver-gen generate -l
semver-generator generate -l
<span class="text-gray-400"># Remote repository</span>
semver-gen generate -r https://github.com/user/repo
semver-generator generate -r https://github.com/user/repo
<span class="text-gray-400"># With custom config</span>
semver-gen generate -l -c semver.yaml
semver-generator generate -l -c semver.yaml
<span class="text-gray-400"># Strict mode (only exact matches)</span>
semver-gen generate -l -s
semver-generator generate -l -s
<span class="text-gray-400"># Respect existing tags</span>
semver-gen generate -l -e
semver-generator generate -l -e
<span class="text-gray-400"># Self-update to latest version (no auth required)</span>
semver-gen -u</code></pre>
semver-generator -u</code></pre>
<div class="grid sm:grid-cols-2 gap-4 text-sm">
<div>
<h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2">Flags</h4>
+2 -2
View File
@@ -60,11 +60,11 @@ if [[ ! -z "$INPUT_DEBUGMODE" ]]; then
echo "----"
echo "FLAGS: $FLAGS"
echo "----"
/go/src/app/semver-gen generate $FLAGS $*
/go/src/app/semver-generator generate $FLAGS $*
echo "----"
fi
OUT_SEMVER_GEN=$(/go/src/app/semver-gen generate $FLAGS $*)
OUT_SEMVER_GEN=$(/go/src/app/semver-generator generate $FLAGS $*)
[ $? -eq 0 ] || exit 1
CLEAN_SEMVER=$(echo $OUT_SEMVER_GEN | sed -e 's|SEMVER ||g')
echo "semantic_version=$CLEAN_SEMVER" >> $GITHUB_OUTPUT