|
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", |
@@ -630,6 +642,37 @@ func pickPipelinesUsing(uses string, pipelines []config.Pipeline) []*config.Pipe |
630 | 642 | return retval |
631 | 643 | } |
632 | 644 |
|
| 645 | +func anyPipelineUses(c config.Configuration, uses string) bool { |
| 646 | + for index := range len(c.Pipeline) { |
| 647 | + if c.Pipeline[index].Uses == uses { |
| 648 | + return true |
| 649 | + } |
| 650 | + } |
| 651 | + if c.Test != nil { |
| 652 | + for index := range len(c.Test.Pipeline) { |
| 653 | + if c.Test.Pipeline[index].Uses == uses { |
| 654 | + return true |
| 655 | + } |
| 656 | + } |
| 657 | + } |
| 658 | + for spindex := range c.Subpackages { |
| 659 | + sp := c.Subpackages[spindex] |
| 660 | + for index := range len(sp.Pipeline) { |
| 661 | + if sp.Pipeline[index].Uses == uses { |
| 662 | + return true |
| 663 | + } |
| 664 | + } |
| 665 | + if sp.Test != nil { |
| 666 | + for index := range len(sp.Test.Pipeline) { |
| 667 | + if sp.Test.Pipeline[index].Uses == uses { |
| 668 | + return true |
| 669 | + } |
| 670 | + } |
| 671 | + } |
| 672 | + } |
| 673 | + return false |
| 674 | +} |
| 675 | + |
633 | 676 | func containsKey(parentNode *yaml.Node, key string) error { |
634 | 677 | it := yit.FromNode(parentNode). |
635 | 678 | ValuesForMap(yit.WithValue(key), yit.All) |
|
0 commit comments