Compare commits

...

3 Commits

Author SHA1 Message Date
lukaszraczylo 0bc848f6f4 fixup! fixup! Update binary confusion. 2025-12-07 16:29:21 +00:00
lukaszraczylo 8590963822 fixup! Update binary confusion. 2025-12-07 16:27:57 +00:00
lukaszraczylo f4285403f7 Update binary confusion. 2025-12-07 16:27:04 +00:00
6 changed files with 40 additions and 28 deletions
+4 -4
View File
@@ -7,7 +7,7 @@ before:
builds: builds:
- id: semver-gen - id: semver-gen
main: . main: .
binary: semver-gen binary: semver-generator
env: env:
- CGO_ENABLED=0 - CGO_ENABLED=0
goos: goos:
@@ -24,7 +24,7 @@ builds:
archives: archives:
- id: semver-gen - id: semver-gen
formats: [tar.gz] formats: [tar.gz]
name_template: "semver-gen-{{ .Os }}-{{ .Arch }}" name_template: "semver-generator-{{ .Os }}-{{ .Arch }}"
format_overrides: format_overrides:
- goos: windows - goos: windows
formats: [zip] formats: [zip]
@@ -34,7 +34,7 @@ archives:
- config.yaml - config.yaml
checksum: checksum:
name_template: "semver-gen-checksums.txt" name_template: "semver-generator-checksums.txt"
algorithm: sha256 algorithm: sha256
changelog: changelog:
@@ -87,5 +87,5 @@ homebrew_casks:
install: | install: |
if OS.mac? if OS.mac?
system_command "/usr/bin/xattr", system_command "/usr/bin/xattr",
args: ["-dr", "com.apple.quarantine", "#{staged_path}/semver-gen"] args: ["-dr", "com.apple.quarantine", "#{staged_path}/semver-generator"]
end end
+1 -1
View File
@@ -1,6 +1,6 @@
FROM ubuntu:jammy FROM ubuntu:jammy
ARG TARGETPLATFORM ARG TARGETPLATFORM
COPY ${TARGETPLATFORM}/semver-gen /go/src/app/semver-gen COPY ${TARGETPLATFORM}/semver-generator /go/src/app/semver-generator
COPY config-release.yaml /go/src/app/config.yaml COPY config-release.yaml /go/src/app/config.yaml
COPY entrypoint.sh /entrypoint.sh COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh RUN chmod +x /entrypoint.sh
+6 -6
View File
@@ -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 Darwin ARM64/AMD64, Linux ARM64/AMD64, Windows AMD64
```bash ```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 SEMVER 9.0.10
bash$ ./semver-gen generate -l bash$ semver-generator generate -l
SEMVER 5.1.1 SEMVER 5.1.1
``` ```
@@ -73,8 +73,8 @@ SEMVER 5.1.1
```yaml ```yaml
Usage: Usage:
semver-gen generate [flags] semver-generator generate [flags]
semver-gen [command] semver-generator [command]
Available Commands: Available Commands:
generate Generates semantic version generate Generates semantic version
@@ -84,7 +84,7 @@ Flags:
-c, --config string Path to config file (default "semver.yaml") -c, --config string Path to config file (default "semver.yaml")
-d, --debug Enable debug mode -d, --debug Enable debug mode
-e, --existing Respect existing tags -e, --existing Respect existing tags
-h, --help help for semver-gen -h, --help help for semver-generator
-l, --local Use local repository -l, --local Use local repository
-r, --repository string Remote repository URL. (default "https://github.com/lukaszraczylo/simple-gql-client") -r, --repository string Remote repository URL. (default "https://github.com/lukaszraczylo/simple-gql-client")
-b, --branch string Remote repository URL Branch. (default "main") -b, --branch string Remote repository URL Branch. (default "main")
@@ -98,7 +98,7 @@ Flags:
The binary can update itself to the latest version: The binary can update itself to the latest version:
```bash ```bash
semver-gen -u semver-generator -u
``` ```
This downloads the latest release for your platform directly from GitHub releases. No authentication is required. This downloads the latest release for your platform directly from GitHub releases. No authentication is required.
+19 -7
View File
@@ -209,7 +209,7 @@ func downloadBinary(url string) (string, error) {
} }
// Create temp file // Create temp file
tempFile, err := os.CreateTemp("", "semver-gen-update-*") tempFile, err := os.CreateTemp("", "semver-generator-update-*")
if err != nil { if err != nil {
return "", err return "", err
} }
@@ -236,13 +236,13 @@ func downloadBinary(url string) (string, error) {
return tempPath, nil 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 { func extractTarGz(r io.Reader, destFile *os.File) error {
// For simplicity, we'll download the whole archive to a temp file first, // 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. // then use tar command to extract. This avoids adding archive/tar dependency.
// Create temp archive file // 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 { if err != nil {
return err return err
} }
@@ -256,7 +256,7 @@ func extractTarGz(r io.Reader, destFile *os.File) error {
archiveFile.Close() archiveFile.Close()
// Extract using tar command // Extract using tar command
extractDir, err := os.MkdirTemp("", "semver-gen-extract-*") extractDir, err := os.MkdirTemp("", "semver-generator-extract-*")
if err != nil { if err != nil {
return err return err
} }
@@ -268,22 +268,34 @@ func extractTarGz(r io.Reader, destFile *os.File) error {
return fmt.Errorf("failed to extract archive: %w", err) 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 := "" binaryPath := ""
entries, err := os.ReadDir(extractDir) entries, err := os.ReadDir(extractDir)
if err != nil { if err != nil {
return err return err
} }
// First try to find semver-generator (new name)
for _, entry := range entries { 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()) binaryPath = fmt.Sprintf("%s/%s", extractDir, entry.Name())
break break
} }
} }
// Fallback to semver-gen (old name) for older releases
if binaryPath == "" { 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 // Copy the binary to the destination
+8 -8
View File
@@ -157,10 +157,10 @@
<div class="w-3 h-3 rounded-full bg-green-500"></div> <div class="w-3 h-3 rounded-full bg-green-500"></div>
<span class="ml-2 text-gray-400 text-sm">terminal</span> <span class="ml-2 text-gray-400 text-sm">terminal</span>
</div> </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-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> <span class="text-emerald-400">SEMVER</span> 2.3.0</code></pre>
</div> </div>
</div> </div>
@@ -295,22 +295,22 @@
CLI Usage CLI Usage
</h3> </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> <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> <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> <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> <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> <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> <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 class="grid sm:grid-cols-2 gap-4 text-sm">
<div> <div>
<h4 class="font-medium text-gray-900 dark:text-gray-100 mb-2">Flags</h4> <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 "----"
echo "FLAGS: $FLAGS" echo "FLAGS: $FLAGS"
echo "----" echo "----"
/go/src/app/semver-gen generate $FLAGS $* /go/src/app/semver-generator generate $FLAGS $*
echo "----" echo "----"
fi 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 [ $? -eq 0 ] || exit 1
CLEAN_SEMVER=$(echo $OUT_SEMVER_GEN | sed -e 's|SEMVER ||g') CLEAN_SEMVER=$(echo $OUT_SEMVER_GEN | sed -e 's|SEMVER ||g')
echo "semantic_version=$CLEAN_SEMVER" >> $GITHUB_OUTPUT echo "semantic_version=$CLEAN_SEMVER" >> $GITHUB_OUTPUT