|
76 | 76 | ) |
77 | 77 |
|
78 | 78 | const gitCheckout = "git-checkout" |
| 79 | +const sccacheEnable = "sccache/enable" |
79 | 80 |
|
80 | 81 | // AllRules is a list of all available rules to evaluate. |
81 | 82 | var AllRules = func(l *Linter) Rules { //nolint:gocyclo |
@@ -527,6 +528,17 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo |
527 | 528 | return nil |
528 | 529 | }, |
529 | 530 | }, |
| 531 | + { |
| 532 | + Name: "sccache-enabled", |
| 533 | + Description: "sccache/enable is for local devel-use only", |
| 534 | + Severity: SeverityError, |
| 535 | + LintFunc: func(c config.Configuration) error { |
| 536 | + if anyPipelineUses(c, sccacheEnable) { |
| 537 | + return fmt.Errorf("scacche/enable pipeline exists") |
| 538 | + } |
| 539 | + return nil |
| 540 | + }, |
| 541 | + }, |
530 | 542 | { |
531 | 543 | Name: "valid-update-schedule", |
532 | 544 | Description: "update schedule config should contain a valid period", |
@@ -712,6 +724,37 @@ func pickPipelinesUsing(uses string, pipelines []config.Pipeline) []*config.Pipe |
712 | 724 | return retval |
713 | 725 | } |
714 | 726 |
|
| 727 | +func anyPipelineUses(c config.Configuration, uses string) bool { |
| 728 | + for index := range len(c.Pipeline) { |
| 729 | + if c.Pipeline[index].Uses == uses { |
| 730 | + return true |
| 731 | + } |
| 732 | + } |
| 733 | + if c.Test != nil { |
| 734 | + for index := range len(c.Test.Pipeline) { |
| 735 | + if c.Test.Pipeline[index].Uses == uses { |
| 736 | + return true |
| 737 | + } |
| 738 | + } |
| 739 | + } |
| 740 | + for spindex := range c.Subpackages { |
| 741 | + sp := c.Subpackages[spindex] |
| 742 | + for index := range len(sp.Pipeline) { |
| 743 | + if sp.Pipeline[index].Uses == uses { |
| 744 | + return true |
| 745 | + } |
| 746 | + } |
| 747 | + if sp.Test != nil { |
| 748 | + for index := range len(sp.Test.Pipeline) { |
| 749 | + if sp.Test.Pipeline[index].Uses == uses { |
| 750 | + return true |
| 751 | + } |
| 752 | + } |
| 753 | + } |
| 754 | + } |
| 755 | + return false |
| 756 | +} |
| 757 | + |
715 | 758 | func containsKey(parentNode *yaml.Node, key string) error { |
716 | 759 | it := yit.FromNode(parentNode). |
717 | 760 | ValuesForMap(yit.WithValue(key), yit.All) |
|
0 commit comments