You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ci_validator/main.go

72 lines
1.7 KiB
Go

package main
import (
"bufio"
"fmt"
"os"
"gitflame.ru/Azaki/CI_VLDR/gitlabcivalidator"
)
func main() {
// Корректный (упрощённый) YAML
// validYAML := `
//stages:
// - build
// - test
//jobs:
// build_job:
// stage: build
// script:
// - echo "Building..."
// test_job:
// stage: test
// dependencies: ["build_job"]
// script:
// - echo "Testing..."
//`
// Тип, ссылка и текст ошибки, показатели где нахоидтся ошибка...
// Некорректный YAML — отсутствует видимая задача, есть только скрытая
// invalidYAML := `
//stages:
// - build
// - test
//jobs:
// teaaa:
// build_job:
// validateJobMapping(jobValNode, ve):
// script:
// - c
// needs: ["test_job2"]
// test_job2:
// stage: test
//`
scanner := bufio.NewScanner(os.Stdin)
var inputYAML string
for scanner.Scan() {
inputYAML += scanner.Text() + "\n"
}
if err := scanner.Err(); err != nil {
fmt.Println("Ошибка чтения ввода:", err)
return
}
err := gitlabcivalidator.ValidateGitLabCIFile(inputYAML, gitlabcivalidator.ValidationOptions{})
if err != nil {
fmt.Println(err.Error())
} else {
fmt.Println("no errors")
}
//fmt.Println("\n=== Пример 2: Некорректный YAML ===")
//err2 := gitlabcivalidator.ValidateGitLabCIFile(invalidYAML, gitlabcivalidator.ValidationOptions{})
//if err2 != nil {
// fmt.Println("Ошибка валидации (ожидаемо для данного файла):")
// fmt.Println(err2.Error())
//} else {
// log.Fatal("Ожидали ошибку, но её не возникло")
//}
}