From b4db6deac8c8aa96acbc544c59b3ff02ef355f83 Mon Sep 17 00:00:00 2001 From: Daniel Mikusa Date: Thu, 6 Jan 2022 16:21:25 -0500 Subject: [PATCH] Fixes edge case where versions have prerelease info Prior to this PR, if a version key in the index.yml had prerelease info, there would be an `_` and then the prerelease info. This isn't valid semver, so it would break the pipeline. This change replaces the `_` with a `-` which makes it valid semver. Signed-off-by: Daniel Mikusa --- actions/cf-java-index-dependency/main.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/actions/cf-java-index-dependency/main.go b/actions/cf-java-index-dependency/main.go index 6d9bec57..10902bf6 100644 --- a/actions/cf-java-index-dependency/main.go +++ b/actions/cf-java-index-dependency/main.go @@ -20,15 +20,18 @@ import ( "fmt" "net/http" "os" + "regexp" "github.com/paketo-buildpacks/pipeline-builder/actions" "gopkg.in/yaml.v3" ) +var versionPattern = regexp.MustCompile(`(\d+)\.(\d+)\.(\d+)_(.*)`) + func main() { inputs := actions.NewInputs() - // same repository_root as documented here: https://github.com/cloudfoundry/java-buildpack/blob/main/docs/extending-repositories.md + // same repository_root as documented here: https://github.com/cloudfoundry/java-buildpack/blob/main/docs/extending-repositories.md repositoryRoot, ok := inputs["repository_root"] if !ok { panic(fmt.Errorf("repository_root must be specified")) @@ -52,7 +55,7 @@ func main() { versions := make(actions.Versions) for k, v := range raw { - versions[k] = v + versions[versionPattern.ReplaceAllString(k, "$1.$2.$3-$4")] = v } if o, err := versions.GetLatest(inputs); err != nil {