mirror of
https://github.com/lukaszraczylo/semver-generator.git
synced 2026-06-18 01:41:19 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a1c4133e94 | |||
| 2a51752663 | |||
| 0bc848f6f4 | |||
| 8590963822 | |||
| f4285403f7 |
@@ -8,6 +8,7 @@ on:
|
||||
permissions:
|
||||
contents: write
|
||||
actions: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
autoupdate:
|
||||
@@ -15,3 +16,5 @@ jobs:
|
||||
with:
|
||||
go-version: "1.24"
|
||||
release-workflow: "release.yaml"
|
||||
secrets:
|
||||
pat-token: ${{ secrets.HOMEBREW_TAP_TOKEN }}
|
||||
|
||||
+4
-4
@@ -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-{{ .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-checksums.txt"
|
||||
name_template: "semver-generator-checksums.txt"
|
||||
algorithm: sha256
|
||||
|
||||
changelog:
|
||||
@@ -87,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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
FROM ubuntu:jammy
|
||||
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 entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
@@ -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.
|
||||
|
||||
+19
-7
@@ -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
|
||||
|
||||
+8
-8
@@ -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>
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -7,7 +7,7 @@ toolchain go1.24.6
|
||||
require (
|
||||
github.com/go-git/go-git/v5 v5.16.4
|
||||
github.com/lithammer/fuzzysearch v1.1.8
|
||||
github.com/lukaszraczylo/graphql-monitoring-proxy v0.41.20
|
||||
github.com/lukaszraczylo/graphql-monitoring-proxy v0.42.4
|
||||
github.com/lukaszraczylo/pandati v0.0.29
|
||||
github.com/spf13/cobra v1.10.2
|
||||
github.com/spf13/viper v1.21.0
|
||||
|
||||
@@ -65,8 +65,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/lithammer/fuzzysearch v1.1.8 h1:/HIuJnjHuXS8bKaiTMeeDlW2/AyIWk2brx1V8LFgLN4=
|
||||
github.com/lithammer/fuzzysearch v1.1.8/go.mod h1:IdqeyBClc3FFqSzYq/MXESsS4S0FsZ5ajtkr5xPLts4=
|
||||
github.com/lukaszraczylo/graphql-monitoring-proxy v0.41.20 h1:554N+HD5cTY074Y0LrL82cYQNCG1qDV3QKULgdLovs0=
|
||||
github.com/lukaszraczylo/graphql-monitoring-proxy v0.41.20/go.mod h1:1FLcH7q+7cjUgQxyeVeF7ouBamGpcJZgqDF+j+cuFxI=
|
||||
github.com/lukaszraczylo/graphql-monitoring-proxy v0.42.4 h1:gq/bEq+JzPes8WR24HHys9VvVWREDEXOWFoVSOFXCCw=
|
||||
github.com/lukaszraczylo/graphql-monitoring-proxy v0.42.4/go.mod h1:1FLcH7q+7cjUgQxyeVeF7ouBamGpcJZgqDF+j+cuFxI=
|
||||
github.com/lukaszraczylo/pandati v0.0.29 h1:WUEWm1+hWjE5KJbIL8OctG00x2dk4XKGJSlrjhxZ55k=
|
||||
github.com/lukaszraczylo/pandati v0.0.29/go.mod h1:+DyTWKFaXd+jIfe7GW5w2S5PyTko/RXxMyOa+Vl713A=
|
||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||
|
||||
Reference in New Issue
Block a user