Skip to content

Commit

Permalink
refactor: write the github output in golang and support actions input…
Browse files Browse the repository at this point in the history
… variables
  • Loading branch information
josegonzalez committed May 18, 2024
1 parent a4b8e01 commit 69f4af2
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 17 deletions.
2 changes: 1 addition & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
.gitignore
*md
*yml
semver
semver-generator
10 changes: 5 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
FROM golang:1.22.3-alpine as builder

COPY . /go/src/github.com/dokku/semver
WORKDIR /go/src/github.com/dokku/semver
COPY . /go/src/github.com/dokku/semver-generator
WORKDIR /go/src/github.com/dokku/semver-generator
RUN go build

FROM alpine:3.19.1
# hadolint ignore=DL3018
RUN apk add --no-cache bash
COPY --from=builder /go/src/github.com/dokku/semver/semver /usr/local/bin/semver
ENTRYPOINT ["/usr/local/bin/semver"]
COPY --from=builder /go/src/github.com/dokku/semver-generator/semver-generator /usr/local/bin/semver-generator
COPY github-entrypoint /usr/local/bin/github-entrypoint
ENTRYPOINT ["/usr/local/bin/semver-generator"]
LABEL org.opencontainers.image.description "A tool for generating a semver version from an existing version and a desired bump level"
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@ Github Action and golang binary for generating a semver version

```shell
# build it
docker build --progress plain -t semver .
docker build --progress plain -t semver-generator .

# run it with arguments
docker run --rm semver --input 0.1.2 --bump patch
docker run --rm semver-generator --input 0.1.2 --bump patch
```

If executed in a Github Actions environment, a Github Output of `version` will be written.

## Releasing

Run the `bump-version` Github Actions workflow with the appropriate `bump type`. A docker image will be generated and pushed into GHCR, while the built binaries will be attached to the Github Release associated with the generated tag.
10 changes: 5 additions & 5 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ inputs:
runs:
using: "docker"
image: "Dockerfile"
args:
- "--bump"
- ${{ inputs.bump }}
- "--input"
- ${{ inputs.input }}
entrypoint: "/usr/local/bin/github-entrypoint"

outputs:
version:
description: "The computed version"
3 changes: 3 additions & 0 deletions github-entrypoint
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env sh

/usr/local/bin/semver-generator --bump "$INPUT_BUMP" --input "$INPUT_VERSION"
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module github.com/dokku/semver
module github.com/dokku/semver-generator

go 1.22.3

Expand Down
6 changes: 3 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"os"
"strings"

go_semver "github.com/coreos/go-semver/semver"
"github.com/coreos/go-semver/semver"
flag "github.com/spf13/pflag"
)

Expand Down Expand Up @@ -43,7 +43,7 @@ func main() {
addPrefix = true
}

parsed, err := go_semver.NewVersion(*input)
parsed, err := semver.NewVersion(*input)
if err != nil {
slog.Error("Invalid version", "version", *input, "error", err.Error())
os.Exit(1)
Expand Down Expand Up @@ -76,7 +76,7 @@ func main() {
}
defer f.Close()

if _, err = f.WriteString(fmt.Sprintf("VERSION=%s", updatedVersion)); err != nil {
if _, err = f.WriteString(fmt.Sprintf("version=%s", updatedVersion)); err != nil {
slog.Error("Failed to write to file", "file", githubOutput, "error", err.Error())
os.Exit(1)
}
Expand Down

0 comments on commit 69f4af2

Please sign in to comment.