mirror of
https://github.com/kairos-io/packages.git
synced 2025-08-31 22:17:00 +00:00
Make sure that if a package file has been changed, that a related definition/collection file has also been changed (#668)
* list changed files Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * simplify Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * simplify Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * test file Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * Add bump validator Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * wrong dir Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * go version 1.23 Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * force go version Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * test Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * revert test changes Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * Do the check also on amd Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * use a new job Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * add checkout step Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> * Use hasPrefix Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com> --------- Signed-off-by: Mauro Morales <mauro.morales@spectrocloud.com>
This commit is contained in:
50
tools/bump-validator/main.go
Normal file
50
tools/bump-validator/main.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// isDefinitionFile checks if the basename of the file is definition.yaml or collection.yaml
|
||||
func isDefinitionFile(file string) bool {
|
||||
basename := filepath.Base(file)
|
||||
return basename == "definition.yaml" || basename == "collection.yaml"
|
||||
}
|
||||
|
||||
// reduceRelated keeps only the definition files that are siblings or in a parten directory of the given file
|
||||
func reduceRelated(file string, files []string) []string {
|
||||
var relatedFiles []string
|
||||
dir := filepath.Dir(file)
|
||||
for _, f := range files {
|
||||
otherDir := filepath.Dir(f)
|
||||
if isDefinitionFile(f) && strings.HasPrefix(dir, otherDir) {
|
||||
relatedFiles = append(relatedFiles, f)
|
||||
}
|
||||
}
|
||||
return relatedFiles
|
||||
}
|
||||
|
||||
func main() {
|
||||
var missingVersionBump bool
|
||||
|
||||
files := os.Args[1:]
|
||||
for _, file := range files {
|
||||
// fmt.Println("Processing file ", file)
|
||||
if isDefinitionFile(file) {
|
||||
// fmt.Println("Skipping definition file ", file)
|
||||
continue
|
||||
}
|
||||
|
||||
relatedFiles := reduceRelated(file, files)
|
||||
if len(relatedFiles) == 0 {
|
||||
missingVersionBump = true
|
||||
fmt.Println("Error: Version bump missing for file ", file)
|
||||
}
|
||||
}
|
||||
|
||||
if missingVersionBump {
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user