mirror of
https://github.com/kairos-io/kairos-sdk.git
synced 2025-04-28 03:20:52 +00:00
* Introduce versioneer package to replace the naming.sh script in kairos-io/kairos Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement BootableName for bootable artifacts also introduce Version and SoftwareVersion fields Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Refactor to introduce commondName to be used with ContainerName Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement ContainerName and add missing tests Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Introduce NewArtifactFromJSON Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Introduce NewFromOSRelease to be used within a Kairos image See also discussion: https://github.com/kairos-io/kairos/discussions/2035 Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Introduce 3 methods to find releases (TODO: implement them) Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Use existing OSRelease method and remove the new one the existing method had to be adapted to accept and optional path to the os-release file to allow the tests to pass a tmp file. Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Introduce TagList and some basic filtering of tags also introduce RegistryInspector which finds tags from a container registry for a specific repository. Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement OtherVersions method of TagList to return different Kairos versions of the exact same artifact. Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * [WIP] Add TODOs for 2 more methods Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement Sorted() method on TagList Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement RSorted and change OtherVersions test to ensure it also returns older versions too. Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement NewerVersions method Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Make json file pretty Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement OtherSoftwareVersions and NewerSoftwareVersions Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement NewerAnyVersions and OtherAnyVersions Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Make TagList a struct so that it has an "Artifact" field Now the Artifact has a TagList method that returns a TagList which is associated to the specific Artifact. All methods of TagList are now available to the Artifact. E.g. tagList, _ := artifact.TagList("quay.io/kairos") tagList.NewerAnyVersion(...) Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Use the field Artifact in TagList methods instead of needing an argument Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Fix linting errors Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Restructure files and introduce main.go for versioneer to provide a user interface that will replace naming.sh script of the kairos repository Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Fix imports Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement bootable-artifact-name cli command Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement BaseContainerName method Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com> * Create a wrapper command base-container-artifact-name Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * Extract the cli command to the packag to be re-used in kairos-agent Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com> * Go back to original package structure and just nest the cli Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Move the versioneer "main" package outside the tree to allow it to be imported in kairos-agent Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Allow setting the cli flags using environment variables Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Implement os-release-variables command to replace the logic in Earthly and Dockerfiles Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Fix test Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Fix TODO in Readme Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> * Dry the creation of the Artifact Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> --------- Signed-off-by: Dimitris Karakasilis <dimitris@karakasilis.me> Signed-off-by: Dimitris Karakasilis <dimitris@spectrocloud.com> Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> Co-authored-by: Mauro Morales <mauro.morales@spectrocloud.com> Co-authored-by: Dimitris Karakasilis <dimitris@spectrocloud.com>
33 lines
908 B
Go
33 lines
908 B
Go
package versioneer_test
|
|
|
|
import (
|
|
"github.com/kairos-io/kairos-sdk/versioneer"
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("NewArtifactFromJSON", func() {
|
|
It("returns an object from the given json", func() {
|
|
jsonStr := `{
|
|
"flavor":"opensuse-leap",
|
|
"flavorRelease":"15.5",
|
|
"variant":"standard",
|
|
"model":"generic",
|
|
"arch":"amd64",
|
|
"version":"v2.4.2",
|
|
"softwareVersion":"k3sv1.26.9+k3s1"
|
|
}`
|
|
|
|
artifact, err := versioneer.NewArtifactFromJSON(jsonStr)
|
|
|
|
Expect(err).ToNot(HaveOccurred())
|
|
Expect(artifact.Flavor).To(Equal("opensuse-leap"))
|
|
Expect(artifact.FlavorRelease).To(Equal("15.5"))
|
|
Expect(artifact.Variant).To(Equal("standard"))
|
|
Expect(artifact.Model).To(Equal("generic"))
|
|
Expect(artifact.Arch).To(Equal("amd64"))
|
|
Expect(artifact.Version).To(Equal("v2.4.2"))
|
|
Expect(artifact.SoftwareVersion).To(Equal("k3sv1.26.9+k3s1"))
|
|
})
|
|
})
|