Remove all tests before generating new ones

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
Kristoffer Dalby 2023-02-02 17:02:27 +01:00 committed by Kristoffer Dalby
parent ce587d2421
commit 00fbd8dd93

View File

@ -8,11 +8,14 @@ import (
"log" "log"
"os" "os"
"os/exec" "os/exec"
"path"
"path/filepath"
"strings" "strings"
"text/template" "text/template"
) )
var ( var (
githubWorkflowPath = "../../.github/workflows/"
jobFileNameTemplate = `test-integration-v2-%s.yaml` jobFileNameTemplate = `test-integration-v2-%s.yaml`
jobTemplate = template.Must( jobTemplate = template.Must(
template.New("jobTemplate"). template.New("jobTemplate").
@ -79,6 +82,22 @@ jobs:
const workflowFilePerm = 0o600 const workflowFilePerm = 0o600
func removeTests() {
glob := fmt.Sprintf(jobFileNameTemplate, "*")
files, err := filepath.Glob(filepath.Join(githubWorkflowPath, glob))
if err != nil {
log.Fatalf("failed to find test files")
}
for _, file := range files {
err := os.Remove(file)
if err != nil {
log.Printf("failed to remove: %s", err)
}
}
}
func findTests() []string { func findTests() []string {
rgBin, err := exec.LookPath("rg") rgBin, err := exec.LookPath("rg")
if err != nil { if err != nil {
@ -121,6 +140,8 @@ func main() {
tests := findTests() tests := findTests()
removeTests()
for _, test := range tests { for _, test := range tests {
log.Printf("generating workflow for %s", test) log.Printf("generating workflow for %s", test)
@ -132,9 +153,9 @@ func main() {
log.Fatalf("failed to render template: %s", err) log.Fatalf("failed to render template: %s", err)
} }
path := "../../.github/workflows/" + fmt.Sprintf(jobFileNameTemplate, test) testPath := path.Join(githubWorkflowPath, fmt.Sprintf(jobFileNameTemplate, test))
err := os.WriteFile(path, content.Bytes(), workflowFilePerm) err := os.WriteFile(testPath, content.Bytes(), workflowFilePerm)
if err != nil { if err != nil {
log.Fatalf("failed to write github job: %s", err) log.Fatalf("failed to write github job: %s", err)
} }