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.
63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"gitflame.ru/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:
|
|
build_job:
|
|
stage: build
|
|
script:
|
|
- echo "Building..."
|
|
needs: ["test_job2"]
|
|
test_job2:
|
|
stage: test
|
|
script:
|
|
- echo "Testing..."
|
|
needs: ["build_job", "test_job2", "test_job3"]
|
|
`
|
|
|
|
fmt.Println("=== Пример 1: Корректный YAML ===")
|
|
err := gitlabcivalidator.ValidateGitLabCIFile(validYAML, gitlabcivalidator.ValidationOptions{})
|
|
if err != nil {
|
|
log.Fatalf("Ожидали, что ошибок не будет, но возникли: %v\n", err)
|
|
} else {
|
|
fmt.Println("Валидация успешна! Ошибок не найдено.")
|
|
}
|
|
|
|
fmt.Println("\n=== Пример 2: Некорректный YAML ===")
|
|
err2 := gitlabcivalidator.ValidateGitLabCIFile(invalidYAML, gitlabcivalidator.ValidationOptions{})
|
|
if err2 != nil {
|
|
fmt.Println("Ошибка валидации (ожидаемо для данного файла):")
|
|
fmt.Println(err2.Error())
|
|
} else {
|
|
log.Fatal("Ожидали ошибку, но её не возникло")
|
|
}
|
|
}
|