diff --git a/features/src/node/README.md b/features/src/node/README.md index 1773e0f..71dcc59 100755 --- a/features/src/node/README.md +++ b/features/src/node/README.md @@ -6,7 +6,7 @@ Installs Node.js. ```json "features": { - "ghcr.io/postfinance/devcontainer-features/node:1.0.0": { + "ghcr.io/postfinance/devcontainer-features/node:1.0.1": { "version": "lts", "npmVersion": "included", "yarnVersion": "none", diff --git a/features/src/node/devcontainer-feature.json b/features/src/node/devcontainer-feature.json index 36b212d..1713e4b 100644 --- a/features/src/node/devcontainer-feature.json +++ b/features/src/node/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "node", - "version": "1.0.0", + "version": "1.0.1", "name": "Node.js", "description": "Installs Node.js.", "options": { diff --git a/features/src/node/installer.go b/features/src/node/installer.go index a67a7ee..ce60be7 100644 --- a/features/src/node/installer.go +++ b/features/src/node/installer.go @@ -105,7 +105,10 @@ func (c *nodeComponent) GetAllVersions() ([]*gover.Version, error) { } allVersions := []*gover.Version{} for _, entry := range jsonData { - version := gover.MustParseVersionFromRegex(entry.Version, nodeVersionRegex) + version, err := gover.ParseVersionFromRegex(entry.Version, nodeVersionRegex) + if err != nil { + continue + } isLtsEntry := false switch entry.Lts.(type) { case bool: diff --git a/features/src/node/node_version_test.go b/features/src/node/node_version_test.go new file mode 100644 index 0000000..b155244 --- /dev/null +++ b/features/src/node/node_version_test.go @@ -0,0 +1,21 @@ +package main + +import ( + "testing" + + "github.com/roemer/gover" +) + +func TestParseNodeVersion(t *testing.T) { + if _, err := gover.ParseVersionFromRegex("v27.0.0-alpha.0.0.0", nodeVersionRegex); err == nil { + t.Fatal("expected prerelease version not to match") + } + + version, err := gover.ParseVersionFromRegex("v27.0.0", nodeVersionRegex) + if err != nil { + t.Fatal("expected stable version to match") + } + if version.Raw != "27.0.0" { + t.Fatalf("expected raw version 27.0.0, got %s", version.Raw) + } +}