Skip to content

Commit

Permalink
Make sure that if a package file has been changed, that a related def…
Browse files Browse the repository at this point in the history
…inition/collection file has also been changed (#668)

* list changed files

Signed-off-by: Mauro Morales <[email protected]>

* simplify

Signed-off-by: Mauro Morales <[email protected]>

* simplify

Signed-off-by: Mauro Morales <[email protected]>

* test file

Signed-off-by: Mauro Morales <[email protected]>

* Add bump validator

Signed-off-by: Mauro Morales <[email protected]>

* wrong dir

Signed-off-by: Mauro Morales <[email protected]>

* go version 1.23

Signed-off-by: Mauro Morales <[email protected]>

* force go version

Signed-off-by: Mauro Morales <[email protected]>

* test

Signed-off-by: Mauro Morales <[email protected]>

* revert test changes

Signed-off-by: Mauro Morales <[email protected]>

* Do the check also on amd

Signed-off-by: Mauro Morales <[email protected]>

* use a new job

Signed-off-by: Mauro Morales <[email protected]>

* add checkout step

Signed-off-by: Mauro Morales <[email protected]>

* Use hasPrefix

Signed-off-by: Mauro Morales <[email protected]>

---------

Signed-off-by: Mauro Morales <[email protected]>
  • Loading branch information
mauromorales authored Feb 9, 2024
1 parent 216a85c commit 15ce83c
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 0 deletions.
24 changes: 24 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,29 @@ concurrency:
on:
pull_request:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v42
with:
files: packages/**
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.21.1
- name: Validate changed packages bump version
if: steps.changed-files.outputs.any_changed == 'true'
env:
PKG_ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
cd tools/bump-validator
go run main.go $PKG_ALL_CHANGED_FILES
build-arm64:
runs-on: fast
env:
Expand Down Expand Up @@ -44,6 +67,7 @@ jobs:
values: values/arm64.yaml
buildx: true
platform: linux/arm64

build:
runs-on: fast
env:
Expand Down
Binary file added tools/bump-validator/bump-validator
Binary file not shown.
3 changes: 3 additions & 0 deletions tools/bump-validator/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module github.com/kairos-io/packages/tools/bump-validator

go 1.21.1
50 changes: 50 additions & 0 deletions tools/bump-validator/main.go
Original file line number Diff line number Diff line change
@@ -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)
}
}

0 comments on commit 15ce83c

Please sign in to comment.