# Note: 
# If you change a dockerfile as a first commit on a new branch, 
# it will not trigger the image rebuild on a push. 
# For that you need to push another commit. Have fun!

distros:
  # CentOS 7 with quite some hacks
  - name: centos-7-amd64
    variables:
      LC_ALL: en_US.UTF-8
      CC: /opt/rh/devtoolset-8/root/usr/bin/gcc
    type: rpm

  - name: centos-8-amd64
    type: rpm

  # Rocky and Oracle Linux, forks of CentOS/RHEL
  {% for num in ('08','09') -%}
  - name: rocky-{{ num }}-amd64
    type: rpm
  {% endfor %}
  {% for num in ('08','09','10') -%}
  - name: oracle-{{ num }}-amd64
    type: rpm
  {% endfor %}

  # Last 7 years of OpenSUSE
  {% for num in (0,1,2,3,4,5) -%}
  - name: opensuse-15.{{ num }}-amd64
    type: rpm
  {% endfor %}
  - name: opensuse-16.0-amd64
    type: rpm

  # Last 12 versions of Fedora
  {% for num in (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43) -%}
  - name: fedora-{{ num }}-amd64
    type: rpm
  {% endfor %}

  # Debian from oldoldstable up to testing
  {% for num in (11, 12, 13, 'testing') -%}
  {% for arch in ('amd64', 'i386') -%}
  - name: debian-{{num}}-{{arch}}
    type: deb
  {% endfor %}
  {% endfor %}

  # Last 7 years of Ubuntu LTS
  {% for num in ('18.04', '20.04', '22.04', '24.04', '25.04', '25.10') -%}
  - name: ubuntu-{{ num }}-amd64
    type: deb
  {% endfor %}

birdlab:
  - name: openbsd-75
    variables:
      AUTOCONF_VERSION: "2.71"

  - name: openbsd-76
    variables:
      AUTOCONF_VERSION: "2.72"

  {% for num in ("09", "10") -%}
  - name: netbsd-{{ num }}
    variables:
      CONFIGURE_OPTIONS: --disable-lto
  {% endfor %}

  {% for num in (13, 14) -%}
  - name: freebsd-{{ num }}
  - name: freebsd-{{ num }}-netlink
    dist: freebsd-{{ num }}
    variables:
      CONFIGURE_OPTIONS: --with-sysconfig=bsd-netlink --disable-client
  {% endfor %}

partial_build_image:
  name: debian-12-amd64

partial_build:
  - protocols: aggregator
  - protocols: babel
  - protocols: bfd
  - protocols: bgp
  - protocols: bgp,bmp
  - protocols: l3vpn
  - protocols: mrt
  - protocols: ospf
  - protocols: pipe
  - protocols: radv
  - protocols: rip
  - protocols: rpki
  - protocols: static

netlab:
  - name: babel-base
  - name: babel-auth
  - name: ospf-base
  - name: ospf-default
  - name: ospf-priority
  - name: ospf-nbma
  - name: ospf-ptmp
  - name: ospf-authentication
  - name: ospf-bfd
  - name: ospf-custom
  - name: ospf-area
  - name: ospf-vrf
  - name: bgp-base
  - name: bgp-auth
  - name: bgp-int
  - name: bgp-merged
  - name: bgp-flowspec
  - name: bgp-rs-multitab
  - name: bgp-rs-singletab
  - name: ebgp-graceful
  - name: ebgp-loop
  - name: ebgp-star
  - name: ebgp-role
  - name: ebgp-import-limit
  - name: ebgp-hostname
  - name: ebgp-bfd-auth
  - name: ibgp-loop
  - name: ibgp-loop-big
  - name: ibgp-flat
  - name: ibgp-bfd-auth
  - name: rip-base
  - name: rip-vrf
  - name: kernel-learn
  - name: mpls-bgp
  - name: mpls-bgp-l3vpn
  - name: bgp-aspa
  - name: aspa-filter
  - name: pipe-collision
  - name: bgp-unnumbered
  - name: bgp-error-states
  - name: ebgp-refresh/gen/imno-basic-imex-basic
  - name: ebgp-refresh/gen/noex-basic-imno-enhanced
  - name: ebgp-refresh/gen/imex-basic-noex-none
  - name: ebgp-refresh/gen/nono-enhanced-nono-basic
  - name: ebgp-refresh/gen/imno-none-imex-basic
  - name: ebgp-refresh/gen/noex-none-imno-enhanced
  - name: ebgp-refresh/gen/imex-none-noex-none
  - name: ebgp-refresh/gen/nono-none-nono-basic
  - name: ebgp-refresh/gen/imno-enhanced-imex-enhanced
  - name: ebgp-refresh/gen/noex-enhanced-imno-enhanced
  - name: ebgp-refresh/gen/imex-enhanced-noex-enhanced
  - name: ebgp-refresh/gen/nono-enhanced-nono-enhanced
