mkdir testrepo
cd testrepo
exec git init --initial-branch=main .

mkdir rules
exec cp -R ../src/v1/rules .
exec cp ../src/.pint.hcl .
env GIT_AUTHOR_NAME=pint
env GIT_AUTHOR_EMAIL=pint@example.com
env GIT_COMMITTER_NAME=pint
env GIT_COMMITTER_EMAIL=pint@example.com
exec git add .
exec git commit -am 'import rules and config'

exec git checkout -b v2
exec rm -fr rules
exec cp -R ../src/v2/rules .
exec git add rules
exec git commit -am 'v2'

exec pint --no-color ci
! stdout .
cmp stderr ../stderr.txt

-- stderr.txt --
level=INFO msg="Loading configuration file" path=.pint.hcl
level=INFO msg="Finding all rules to check on current git branch" base=main
level=INFO msg="Configured new Prometheus server" name=prom1 uris=1 uptime=up tags=[] include=["^rules/alert.*$"] exclude=[]
level=INFO msg="Configured new Prometheus server" name=prom2a uris=1 uptime=up tags=[] include=["^rules/record.*$"] exclude=[]
level=INFO msg="Configured new Prometheus server" name=prom2b uris=1 uptime=up tags=[] include=["^rules/record.*$"] exclude=[]
level=INFO msg="Checking Prometheus rules" entries=7 workers=10 online=true
-- src/v1/rules/alert1.yml --
groups:
- name: g1
  rules:
  - alert: Alert1
    expr: up == 0
  - alert: Alert2
    expr: up:sum == 0
  - alert: Alert3
    expr: up == 0
-- src/v1/rules/record1.yml --
groups:
- name: "g1"
  rules:
  - record: up:sum
    expr: sum(up)
  - record: up:count
    expr: count(up)
-- src/v2/rules/alert1.yml --
groups:
- name: g1
  rules:
  - alert: Alert1
    expr: up == 0
  - alert: Alert3
    expr: up == 0
-- src/v2/rules/alert2.yml --
groups:
- name: g1
  rules:
  - alert: Alert2
    expr: up:sum == 0
-- src/v2/rules/record2.yml --
groups:
- name: "g1"
  rules:
  - record: up:sum
    expr: sum(up)
-- src/v2/rules/record3.yml --
groups:
- name: "g1"
  rules:
  - record: up:count
    expr: count(up)
-- src/.pint.hcl --
ci {
  baseBranch = "main"
}
checks {
  enabled = ["rule/duplicate"]
}
prometheus "prom1" {
  uri      = "http://127.0.0.1:7173/1"
  timeout  = "5s"
  required = true
  include  = ["rules/alert.*"]
}
prometheus "prom2a" {
  uri      = "http://127.0.0.1:7173/2"
  timeout  = "5s"
  required = true
  include  = ["rules/record.*"]
}
prometheus "prom2b" {
  uri      = "http://127.0.0.1:7173/3"
  timeout  = "5s"
  required = true
  include  = ["rules/record.*"]
}
