diff --git a/build/exceptions.py b/build/exceptions.py index 079aee8..16c84ff 100644 --- a/build/exceptions.py +++ b/build/exceptions.py @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2022 The Sipwise Team - http://sipwise.com +# Copyright (C) 2017-2024 The Sipwise Team - http://sipwise.com # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the Free @@ -30,6 +30,10 @@ class NoJenkinsJobsInfo(Error): pass +class NoDebianReleaseInfo(Error): + pass + + class NoReleaseInfo(Error): pass @@ -38,6 +42,20 @@ class NoDistrisInfo(Error): pass +class NoUniqueTrunk(Error): + """release config.yml has more than one release-trunk distri""" + + pass + + +class WrongTrunkDistribution(Error): + pass + + +class WrongDistris(Error): + pass + + class BuildReleaseUnique(Error): """mrX.Y.Z release should be built just once""" diff --git a/build/fixtures/config.ko/mr11.0.yml b/build/fixtures/config.ko/mr11.0.yml new file mode 100644 index 0000000..4116544 --- /dev/null +++ b/build/fixtures/config.ko/mr11.0.yml @@ -0,0 +1,317 @@ +distris: + - release-trunk-bullseye + - bullseye + +debian_release: bullseye + +release-trunk-bullseye: &packages + # TT#44190 TT#182900 needed by ngcp-panel + - grafana: 9.0.2 + # TT#69950 needed by bulk-processor, not available in Debian (project abandoned upstream) + - libexcel-reader-xlsx-perl: 0.00~git20161017.3b576a55-0.1sipwise1~bpo11+1 + # TT#73105 system testing + - goss: 0.3.14-0.1~bpo11+1sipwise1 + # TT#44918 Needed for PRO/Carrier + - ngcp-pxe-boot: 0.7.2.2+0~sipwise20220607 + # TT#126500: Fix race in reboot uptime timestamp computation and comparison + - monit: 5.27.2-1sipwise1~bpo11+1 + # TT#59330 rebuild of package pulled from non-free, required for snmp-agent + - snmp-mibs-downloader: 1.5~bpo11+1 + # MT#19499, TT#126650: local robustness patches + - net-snmp: 5.9+dfsg-3sipwise1~bpo11+2 + # TT#149552 needed by lua-sql-kamailio + - lua-sql: 2.6.0-1~bpo11+1 + # TT#154255 replacement of redis, not in debian + - keydb: 6.3.1-1~bpo11+1 + # TT#140500 needed by prometheus stack + - dh-golang: 1.53~bpo11+1 + - golang-1.17: 1.17.8-1~bpo11+1 + - golang-defaults: 1.17~1~bpo11+2 + - golang-github-alecthomas-units: 0.0~git20211218.b94a6e3-1~bpo11+1 + - golang-github-allegro-bigcache: 2.2.5-5~bpo11+1 + - golang-github-andybalholm-brotli: 1.0.4-3~bpo11+1 + - golang-github-beevik-ntp: 0.3.0-4~bpo11+1 + - golang-github-cheggaaa-pb.v3: 3.0.5-2~bpo11+1 + - golang-github-dennwc-varint: 1.0.0-2~bpo11+1 + - golang-github-ema-qdisc: 0.0~git20200603.62d0308-2~bpo11+1 + - golang-github-go-kit-log: 0.2.0-3~bpo11+1 + - golang-github-go-openapi-analysis: 0.21.2-1~bpo11+1 + - golang-github-go-openapi-errors: 0.20.2-1~bpo11+1 + - golang-github-go-openapi-jsonpointer: 0.19.5-3~bpo11+1 + - golang-github-go-openapi-jsonreference: 0.19.6-2~bpo11+1 + - golang-github-go-openapi-loads: 0.21.1-2~bpo11+1 + - golang-github-go-openapi-runtime: 0.23.3-1~bpo11+1 + - golang-github-go-openapi-spec: 0.20.4-1~bpo11+1 + - golang-github-go-openapi-strfmt: 0.21.2-1~bpo11+1 + - golang-github-go-openapi-swag: 0.21.1-1~bpo11+1 + - golang-github-go-openapi-validate: 0.21.0-1~bpo11+1 + - golang-github-hashicorp-go-envparse: 0.0~git20200406.d9cfd74-3~bpo11+1 + - golang-github-hodgesds-perf-utils: 0.5.1-2~bpo11+1 + - golang-github-josharian-native: 1.0.0-1~bpo11+1 + - golang-github-jsimonetti-rtnetlink: 1.1.0-1~bpo11+1 + - golang-github-mattn-go-xmlrpc: 0.0.3-2~bpo11+1 + - golang-github-mdlayher-genetlink: 1.1.0-3~bpo11+1 + - golang-github-mdlayher-netlink: 1.6.0-2~bpo11+1 + - golang-github-mdlayher-socket: 0.1.1-2~bpo11+1 + - golang-github-mdlayher-wifi: 0.0~git20200527.84f0b94-4~bpo11+1 + - golang-github-mna-redisc: 1.1.7-3~bpo11+1 + - golang-github-ncabatoff-go-seq: 0.0~git20180805.b08ef85-4~bpo11+1 + - golang-github-nginxinc-nginx-plus-go-client: 0.9.0-2~bpo11+1 + - golang-github-prometheus-client-golang: 1.11.1-1~bpo11+1 + - golang-github-prometheus-client-model: 0.2.0-3~bpo11+1 + - golang-github-prometheus-common: 0.32.1-6~bpo11+1 + - golang-github-prometheus-exporter-toolkit: 0.7.1-1~bpo11+1 + - golang-github-prometheus-procfs: 0.7.3-2~bpo11+1 + - golang-github-soundcloud-go-runit: 0.0~git20150630.06ad41a-3~bpo11+1 + - golang-github-valyala-fasthttp: 1.31.0-3~bpo11+1 + - golang-github-valyala-fastjson: 1.6.3-4~bpo11+1 + - golang-github-valyala-fastrand: 1.1.0-2~bpo11+1 + - golang-github-valyala-fasttemplate: 1.2.1+ds1-1~bpo11+1 + - golang-github-valyala-gozstd: 1.16.0+ds1-1~bpo11+1 + - golang-github-valyala-histogram: 1.2.0+ds-2~bpo11+1 + - golang-github-valyala-quicktemplate: 1.7.0+ds1-1~bpo11+1 + - golang-github-victoriametrics-fastcache: 1.9.0+ds1-1~bpo11+1 + - golang-github-victoriametrics-metrics: 1.18.1+ds-2~bpo11+1 + - golang-github-victoriametrics-metricsql: 0.40.0+ds1-1~bpo11+1 + - golang-github-xdg-go-pbkdf2: 1.0.0-2~bpo11+1 + - golang-github-xdg-go-scram: 1.1.1-1~bpo11+1 + - golang-github-xdg-go-stringprep: 1.0.3-1~bpo11+1 + - golang-go-flags: 1.4.0-5~bpo11+1 + - golang-mongodb-mongo-driver: 1.8.4+ds1-1~bpo11+1 + - prometheus-alertmanager: 0.23.0-5~bpo11+1 + - prometheus-haproxy-exporter: 0.13.0+ds1-2~bpo11+1 + - prometheus-mysqld-exporter: 0.14.0-1~bpo11+1 + - prometheus-nginx-exporter: 0.10.0-2~bpo11+1 + - prometheus-node-exporter: 1.3.1-1~bpo11+1 + - prometheus-process-exporter: 0.7.10-2sipwise1~bpo11+1 + - prometheus-redis-exporter: 1.37.0-2~bpo11+1 + - prometheus-snmp-exporter: 0.20.0-1~bpo11+1 + - victoriametrics: 1.75.0+ds1-1~bpo11+1 + # TT#187100 asterisk g729 (not even in Debian) + - asterisk-g72x: 0.0~git20201027.3855cec-1~bpo11+1 + +bullseye: *packages + +repository-verify: + white-list: [] + +jenkins-jobs: + build_deps: + system-tests: + - data-hal # jenkins-tap-test-${distribution} needed for tap-test job + - libswrate + - libtcap + - ngcp-panel + - sipwise-base + - system-tools + system-tools: + - check-tools # libngcp-log-perl libngcp-service-perl + data-hal: + - ngcp-panel + ngcp-schema: + - ngcp-panel + libswrate: + - kamailio + - sems-pbx + libtcap: + - kamailio + - lnpd + sipwise-base: + - ngcp-panel + - ngcp-schema + check-tools: + - snmp-agent + ngcpcfg: + - bootenv # libngcp-template-perl needed on Dockerfile + ngcp-panel: + - csta-testsuite # ngcp-api-testframework needed on Dockerfile + projects: + - asterisk-voicemail + - backup-tools + - bulk-processor + - bulk-processor-projects + - bootenv + - cdr-exporter + - cfg-schema + - check-tools + - cleanup-tools + - cloudpbx-sources + - csta-testsuite + - data-hal + - db-schema + - deployment-iso + - dhtest + - documentation + - faxserver + - installer + - kamailio + - kamailio-config-tests + - keyring + - klish + - libswrate + - libtcap + - license-client + - lnpd + - lua-ngcp-kamailio + - mediator + - megacli + - metapackages + - monitoring-tools + - ngcp-admin-ui + - ngcp-api-tools + - ngcp-csc-ui + - ngcp-exporter + - ngcp-fauditd + - ngcp-inventory + - ngcp-js-api-client + - ngcp-logfs + - ngcp-klish-config + - ngcp-panel + - ngcp-prompts + - ngcp-rest-api + - ngcp-schema + - ngcp-status + - ngcp-sudo-plugin + - ngcp-support + - ngcp-user-framework + - ngcp-web-tests-e2e + - ngcpcfg + - ngcpcfg-api + - ngcpcfg-ha + - ngrep-sip + - prosody + - pushd + - py-ngcp-kamailio + - rate-o-mat + - reminder + - rtpengine + - sems + - sems-pbx + - sipwise-base + - snmp-agent + - system-tests + - system-tools + - templates + - upgrade + - vmnotify + - voisniff-ng + - websocket + +release_mirror: + common: + copysrc: + - kamailio-config-tests + - klish + - libdata-hal-perl + - libsipwise-base-perl + - lua-ngcp-kamailio + - ngcp-admin-ui + - ngcp-api-tools + - ngcp-asterisk-voicemail + - ngcp-bulk-processor + - ngcp-cdr-exporter + - ngcp-cfg-schema + - ngcp-check-tools + - ngcp-cleanup-tools + - ngcp-csc-ui + - ngcp-db-schema + - ngcp-deployment-iso + - ngcp-dhtest + - ngcp-handbook + - ngcp-installer + - ngcp-js-api-client + - ngcp-kamailio + - ngcp-keyring + - ngcp-klish-config + - ngcp-libswrate + - ngcp-libtcap + - ngcp-license-client + - ngcp-mediator + - ngcp-metapackages + - ngcp-ngcpcfg + - ngcp-panel + - ngcp-prompts + - ngcp-prosody-modules + - ngcp-rate-o-mat + - ngcp-reminder + - ngcp-rest-api + - ngcp-rtpengine + - ngcp-schema + - ngcp-status + - ngcp-support + - ngcp-system-tests + - ngcp-system-tools + - ngcp-templates + - ngcp-upgrade + - ngcp-vmnotify + - ngcp-web-tests-e2e + - ngrep-sip + - py-ngcp-kamailio + remove: + source: + - ngcp-handbook + - ngcp-installer + - ngcp-libswrate + - ngcp-license-client + - ngcp-prompts + - ngcp-templates + - ngcp-upgrade + binary: + - ngcp-handbook-internal + - ngcp-handbook-pdf-internal + matched: [] + ce: + copysrc: + - ngcp-sems + remove: + source: [] + binary: + - ngcp-ngcpcfg-testsuite + matched: + - '*-carrier' + - '*-pro' + - '*-pro-dbgsym' + - 'ngcp-prompts-pro*' + pro: + backports: [] + copysrc: + - megacli + - ngcp-backup-tools + - ngcp-bootenv + - ngcp-bulk-processor-projects + - ngcp-cloudpbx-devices + - ngcp-csta-testsuite + - ngcp-exporter + - ngcp-fauditd + - ngcp-faxserver + - ngcp-inventory + - ngcp-lnpd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-sems-pbx + - ngcp-snmp + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcp-websocket + - ngcpcfg-api + remove: + binary: [] + source: + - ngcp-cloudpbx-devices + - ngcp-csta-testsuite + - ngcp-fauditd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-sems-pbx + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcpcfg-api + matched: + - '*ngcp*-ce' + - '*ngcp*-ce-*' diff --git a/build/fixtures/config.ko/mr11.0_no_debian.yml b/build/fixtures/config.ko/mr11.0_no_debian.yml new file mode 100644 index 0000000..c07a5ec --- /dev/null +++ b/build/fixtures/config.ko/mr11.0_no_debian.yml @@ -0,0 +1,316 @@ +distris: + - release-mr11.0 + +debian_release: bullseye + +release-mr11.0: &packages + # TT#44190 TT#182900 needed by ngcp-panel + - grafana: 9.0.2 + # TT#69950 needed by bulk-processor, not available in Debian (project abandoned upstream) + - libexcel-reader-xlsx-perl: 0.00~git20161017.3b576a55-0.1sipwise1~bpo11+1 + # TT#73105 system testing + - goss: 0.3.14-0.1~bpo11+1sipwise1 + # TT#44918 Needed for PRO/Carrier + - ngcp-pxe-boot: 0.7.2.2+0~sipwise20220607 + # TT#126500: Fix race in reboot uptime timestamp computation and comparison + - monit: 5.27.2-1sipwise1~bpo11+1 + # TT#59330 rebuild of package pulled from non-free, required for snmp-agent + - snmp-mibs-downloader: 1.5~bpo11+1 + # MT#19499, TT#126650: local robustness patches + - net-snmp: 5.9+dfsg-3sipwise1~bpo11+2 + # TT#149552 needed by lua-sql-kamailio + - lua-sql: 2.6.0-1~bpo11+1 + # TT#154255 replacement of redis, not in debian + - keydb: 6.3.1-1~bpo11+1 + # TT#140500 needed by prometheus stack + - dh-golang: 1.53~bpo11+1 + - golang-1.17: 1.17.8-1~bpo11+1 + - golang-defaults: 1.17~1~bpo11+2 + - golang-github-alecthomas-units: 0.0~git20211218.b94a6e3-1~bpo11+1 + - golang-github-allegro-bigcache: 2.2.5-5~bpo11+1 + - golang-github-andybalholm-brotli: 1.0.4-3~bpo11+1 + - golang-github-beevik-ntp: 0.3.0-4~bpo11+1 + - golang-github-cheggaaa-pb.v3: 3.0.5-2~bpo11+1 + - golang-github-dennwc-varint: 1.0.0-2~bpo11+1 + - golang-github-ema-qdisc: 0.0~git20200603.62d0308-2~bpo11+1 + - golang-github-go-kit-log: 0.2.0-3~bpo11+1 + - golang-github-go-openapi-analysis: 0.21.2-1~bpo11+1 + - golang-github-go-openapi-errors: 0.20.2-1~bpo11+1 + - golang-github-go-openapi-jsonpointer: 0.19.5-3~bpo11+1 + - golang-github-go-openapi-jsonreference: 0.19.6-2~bpo11+1 + - golang-github-go-openapi-loads: 0.21.1-2~bpo11+1 + - golang-github-go-openapi-runtime: 0.23.3-1~bpo11+1 + - golang-github-go-openapi-spec: 0.20.4-1~bpo11+1 + - golang-github-go-openapi-strfmt: 0.21.2-1~bpo11+1 + - golang-github-go-openapi-swag: 0.21.1-1~bpo11+1 + - golang-github-go-openapi-validate: 0.21.0-1~bpo11+1 + - golang-github-hashicorp-go-envparse: 0.0~git20200406.d9cfd74-3~bpo11+1 + - golang-github-hodgesds-perf-utils: 0.5.1-2~bpo11+1 + - golang-github-josharian-native: 1.0.0-1~bpo11+1 + - golang-github-jsimonetti-rtnetlink: 1.1.0-1~bpo11+1 + - golang-github-mattn-go-xmlrpc: 0.0.3-2~bpo11+1 + - golang-github-mdlayher-genetlink: 1.1.0-3~bpo11+1 + - golang-github-mdlayher-netlink: 1.6.0-2~bpo11+1 + - golang-github-mdlayher-socket: 0.1.1-2~bpo11+1 + - golang-github-mdlayher-wifi: 0.0~git20200527.84f0b94-4~bpo11+1 + - golang-github-mna-redisc: 1.1.7-3~bpo11+1 + - golang-github-ncabatoff-go-seq: 0.0~git20180805.b08ef85-4~bpo11+1 + - golang-github-nginxinc-nginx-plus-go-client: 0.9.0-2~bpo11+1 + - golang-github-prometheus-client-golang: 1.11.1-1~bpo11+1 + - golang-github-prometheus-client-model: 0.2.0-3~bpo11+1 + - golang-github-prometheus-common: 0.32.1-6~bpo11+1 + - golang-github-prometheus-exporter-toolkit: 0.7.1-1~bpo11+1 + - golang-github-prometheus-procfs: 0.7.3-2~bpo11+1 + - golang-github-soundcloud-go-runit: 0.0~git20150630.06ad41a-3~bpo11+1 + - golang-github-valyala-fasthttp: 1.31.0-3~bpo11+1 + - golang-github-valyala-fastjson: 1.6.3-4~bpo11+1 + - golang-github-valyala-fastrand: 1.1.0-2~bpo11+1 + - golang-github-valyala-fasttemplate: 1.2.1+ds1-1~bpo11+1 + - golang-github-valyala-gozstd: 1.16.0+ds1-1~bpo11+1 + - golang-github-valyala-histogram: 1.2.0+ds-2~bpo11+1 + - golang-github-valyala-quicktemplate: 1.7.0+ds1-1~bpo11+1 + - golang-github-victoriametrics-fastcache: 1.9.0+ds1-1~bpo11+1 + - golang-github-victoriametrics-metrics: 1.18.1+ds-2~bpo11+1 + - golang-github-victoriametrics-metricsql: 0.40.0+ds1-1~bpo11+1 + - golang-github-xdg-go-pbkdf2: 1.0.0-2~bpo11+1 + - golang-github-xdg-go-scram: 1.1.1-1~bpo11+1 + - golang-github-xdg-go-stringprep: 1.0.3-1~bpo11+1 + - golang-go-flags: 1.4.0-5~bpo11+1 + - golang-mongodb-mongo-driver: 1.8.4+ds1-1~bpo11+1 + - prometheus-alertmanager: 0.23.0-5~bpo11+1 + - prometheus-haproxy-exporter: 0.13.0+ds1-2~bpo11+1 + - prometheus-mysqld-exporter: 0.14.0-1~bpo11+1 + - prometheus-nginx-exporter: 0.10.0-2~bpo11+1 + - prometheus-node-exporter: 1.3.1-1~bpo11+1 + - prometheus-process-exporter: 0.7.10-2sipwise1~bpo11+1 + - prometheus-redis-exporter: 1.37.0-2~bpo11+1 + - prometheus-snmp-exporter: 0.20.0-1~bpo11+1 + - victoriametrics: 1.75.0+ds1-1~bpo11+1 + # TT#187100 asterisk g729 (not even in Debian) + - asterisk-g72x: 0.0~git20201027.3855cec-1~bpo11+1 + +bullseye: *packages + +repository-verify: + white-list: [] + +jenkins-jobs: + build_deps: + system-tests: + - data-hal # jenkins-tap-test-${distribution} needed for tap-test job + - libswrate + - libtcap + - ngcp-panel + - sipwise-base + - system-tools + system-tools: + - check-tools # libngcp-log-perl libngcp-service-perl + data-hal: + - ngcp-panel + ngcp-schema: + - ngcp-panel + libswrate: + - kamailio + - sems-pbx + libtcap: + - kamailio + - lnpd + sipwise-base: + - ngcp-panel + - ngcp-schema + check-tools: + - snmp-agent + ngcpcfg: + - bootenv # libngcp-template-perl needed on Dockerfile + ngcp-panel: + - csta-testsuite # ngcp-api-testframework needed on Dockerfile + projects: + - asterisk-voicemail + - backup-tools + - bulk-processor + - bulk-processor-projects + - bootenv + - cdr-exporter + - cfg-schema + - check-tools + - cleanup-tools + - cloudpbx-sources + - csta-testsuite + - data-hal + - db-schema + - deployment-iso + - dhtest + - documentation + - faxserver + - installer + - kamailio + - kamailio-config-tests + - keyring + - klish + - libswrate + - libtcap + - license-client + - lnpd + - lua-ngcp-kamailio + - mediator + - megacli + - metapackages + - monitoring-tools + - ngcp-admin-ui + - ngcp-api-tools + - ngcp-csc-ui + - ngcp-exporter + - ngcp-fauditd + - ngcp-inventory + - ngcp-js-api-client + - ngcp-logfs + - ngcp-klish-config + - ngcp-panel + - ngcp-prompts + - ngcp-rest-api + - ngcp-schema + - ngcp-status + - ngcp-sudo-plugin + - ngcp-support + - ngcp-user-framework + - ngcp-web-tests-e2e + - ngcpcfg + - ngcpcfg-api + - ngcpcfg-ha + - ngrep-sip + - prosody + - pushd + - py-ngcp-kamailio + - rate-o-mat + - reminder + - rtpengine + - sems + - sems-pbx + - sipwise-base + - snmp-agent + - system-tests + - system-tools + - templates + - upgrade + - vmnotify + - voisniff-ng + - websocket + +release_mirror: + common: + copysrc: + - kamailio-config-tests + - klish + - libdata-hal-perl + - libsipwise-base-perl + - lua-ngcp-kamailio + - ngcp-admin-ui + - ngcp-api-tools + - ngcp-asterisk-voicemail + - ngcp-bulk-processor + - ngcp-cdr-exporter + - ngcp-cfg-schema + - ngcp-check-tools + - ngcp-cleanup-tools + - ngcp-csc-ui + - ngcp-db-schema + - ngcp-deployment-iso + - ngcp-dhtest + - ngcp-handbook + - ngcp-installer + - ngcp-js-api-client + - ngcp-kamailio + - ngcp-keyring + - ngcp-klish-config + - ngcp-libswrate + - ngcp-libtcap + - ngcp-license-client + - ngcp-mediator + - ngcp-metapackages + - ngcp-ngcpcfg + - ngcp-panel + - ngcp-prompts + - ngcp-prosody-modules + - ngcp-rate-o-mat + - ngcp-reminder + - ngcp-rest-api + - ngcp-rtpengine + - ngcp-schema + - ngcp-status + - ngcp-support + - ngcp-system-tests + - ngcp-system-tools + - ngcp-templates + - ngcp-upgrade + - ngcp-vmnotify + - ngcp-web-tests-e2e + - ngrep-sip + - py-ngcp-kamailio + remove: + source: + - ngcp-handbook + - ngcp-installer + - ngcp-libswrate + - ngcp-license-client + - ngcp-prompts + - ngcp-templates + - ngcp-upgrade + binary: + - ngcp-handbook-internal + - ngcp-handbook-pdf-internal + matched: [] + ce: + copysrc: + - ngcp-sems + remove: + source: [] + binary: + - ngcp-ngcpcfg-testsuite + matched: + - '*-carrier' + - '*-pro' + - '*-pro-dbgsym' + - 'ngcp-prompts-pro*' + pro: + backports: [] + copysrc: + - megacli + - ngcp-backup-tools + - ngcp-bootenv + - ngcp-bulk-processor-projects + - ngcp-cloudpbx-devices + - ngcp-csta-testsuite + - ngcp-exporter + - ngcp-fauditd + - ngcp-faxserver + - ngcp-inventory + - ngcp-lnpd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-sems-pbx + - ngcp-snmp + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcp-websocket + - ngcpcfg-api + remove: + binary: [] + source: + - ngcp-cloudpbx-devices + - ngcp-csta-testsuite + - ngcp-fauditd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-sems-pbx + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcpcfg-api + matched: + - '*ngcp*-ce' + - '*ngcp*-ce-*' diff --git a/build/fixtures/config.ko/mr11.0_three_dists.yml b/build/fixtures/config.ko/mr11.0_three_dists.yml new file mode 100644 index 0000000..8d6f713 --- /dev/null +++ b/build/fixtures/config.ko/mr11.0_three_dists.yml @@ -0,0 +1,319 @@ +distris: + - release-mr11.0 + - bookworm + - bullseye + +debian_release: bullseye + +release-mr11.0: &packages + # TT#44190 TT#182900 needed by ngcp-panel + - grafana: 9.0.2 + # TT#69950 needed by bulk-processor, not available in Debian (project abandoned upstream) + - libexcel-reader-xlsx-perl: 0.00~git20161017.3b576a55-0.1sipwise1~bpo11+1 + # TT#73105 system testing + - goss: 0.3.14-0.1~bpo11+1sipwise1 + # TT#44918 Needed for PRO/Carrier + - ngcp-pxe-boot: 0.7.2.2+0~sipwise20220607 + # TT#126500: Fix race in reboot uptime timestamp computation and comparison + - monit: 5.27.2-1sipwise1~bpo11+1 + # TT#59330 rebuild of package pulled from non-free, required for snmp-agent + - snmp-mibs-downloader: 1.5~bpo11+1 + # MT#19499, TT#126650: local robustness patches + - net-snmp: 5.9+dfsg-3sipwise1~bpo11+2 + # TT#149552 needed by lua-sql-kamailio + - lua-sql: 2.6.0-1~bpo11+1 + # TT#154255 replacement of redis, not in debian + - keydb: 6.3.1-1~bpo11+1 + # TT#140500 needed by prometheus stack + - dh-golang: 1.53~bpo11+1 + - golang-1.17: 1.17.8-1~bpo11+1 + - golang-defaults: 1.17~1~bpo11+2 + - golang-github-alecthomas-units: 0.0~git20211218.b94a6e3-1~bpo11+1 + - golang-github-allegro-bigcache: 2.2.5-5~bpo11+1 + - golang-github-andybalholm-brotli: 1.0.4-3~bpo11+1 + - golang-github-beevik-ntp: 0.3.0-4~bpo11+1 + - golang-github-cheggaaa-pb.v3: 3.0.5-2~bpo11+1 + - golang-github-dennwc-varint: 1.0.0-2~bpo11+1 + - golang-github-ema-qdisc: 0.0~git20200603.62d0308-2~bpo11+1 + - golang-github-go-kit-log: 0.2.0-3~bpo11+1 + - golang-github-go-openapi-analysis: 0.21.2-1~bpo11+1 + - golang-github-go-openapi-errors: 0.20.2-1~bpo11+1 + - golang-github-go-openapi-jsonpointer: 0.19.5-3~bpo11+1 + - golang-github-go-openapi-jsonreference: 0.19.6-2~bpo11+1 + - golang-github-go-openapi-loads: 0.21.1-2~bpo11+1 + - golang-github-go-openapi-runtime: 0.23.3-1~bpo11+1 + - golang-github-go-openapi-spec: 0.20.4-1~bpo11+1 + - golang-github-go-openapi-strfmt: 0.21.2-1~bpo11+1 + - golang-github-go-openapi-swag: 0.21.1-1~bpo11+1 + - golang-github-go-openapi-validate: 0.21.0-1~bpo11+1 + - golang-github-hashicorp-go-envparse: 0.0~git20200406.d9cfd74-3~bpo11+1 + - golang-github-hodgesds-perf-utils: 0.5.1-2~bpo11+1 + - golang-github-josharian-native: 1.0.0-1~bpo11+1 + - golang-github-jsimonetti-rtnetlink: 1.1.0-1~bpo11+1 + - golang-github-mattn-go-xmlrpc: 0.0.3-2~bpo11+1 + - golang-github-mdlayher-genetlink: 1.1.0-3~bpo11+1 + - golang-github-mdlayher-netlink: 1.6.0-2~bpo11+1 + - golang-github-mdlayher-socket: 0.1.1-2~bpo11+1 + - golang-github-mdlayher-wifi: 0.0~git20200527.84f0b94-4~bpo11+1 + - golang-github-mna-redisc: 1.1.7-3~bpo11+1 + - golang-github-ncabatoff-go-seq: 0.0~git20180805.b08ef85-4~bpo11+1 + - golang-github-nginxinc-nginx-plus-go-client: 0.9.0-2~bpo11+1 + - golang-github-prometheus-client-golang: 1.11.1-1~bpo11+1 + - golang-github-prometheus-client-model: 0.2.0-3~bpo11+1 + - golang-github-prometheus-common: 0.32.1-6~bpo11+1 + - golang-github-prometheus-exporter-toolkit: 0.7.1-1~bpo11+1 + - golang-github-prometheus-procfs: 0.7.3-2~bpo11+1 + - golang-github-soundcloud-go-runit: 0.0~git20150630.06ad41a-3~bpo11+1 + - golang-github-valyala-fasthttp: 1.31.0-3~bpo11+1 + - golang-github-valyala-fastjson: 1.6.3-4~bpo11+1 + - golang-github-valyala-fastrand: 1.1.0-2~bpo11+1 + - golang-github-valyala-fasttemplate: 1.2.1+ds1-1~bpo11+1 + - golang-github-valyala-gozstd: 1.16.0+ds1-1~bpo11+1 + - golang-github-valyala-histogram: 1.2.0+ds-2~bpo11+1 + - golang-github-valyala-quicktemplate: 1.7.0+ds1-1~bpo11+1 + - golang-github-victoriametrics-fastcache: 1.9.0+ds1-1~bpo11+1 + - golang-github-victoriametrics-metrics: 1.18.1+ds-2~bpo11+1 + - golang-github-victoriametrics-metricsql: 0.40.0+ds1-1~bpo11+1 + - golang-github-xdg-go-pbkdf2: 1.0.0-2~bpo11+1 + - golang-github-xdg-go-scram: 1.1.1-1~bpo11+1 + - golang-github-xdg-go-stringprep: 1.0.3-1~bpo11+1 + - golang-go-flags: 1.4.0-5~bpo11+1 + - golang-mongodb-mongo-driver: 1.8.4+ds1-1~bpo11+1 + - prometheus-alertmanager: 0.23.0-5~bpo11+1 + - prometheus-haproxy-exporter: 0.13.0+ds1-2~bpo11+1 + - prometheus-mysqld-exporter: 0.14.0-1~bpo11+1 + - prometheus-nginx-exporter: 0.10.0-2~bpo11+1 + - prometheus-node-exporter: 1.3.1-1~bpo11+1 + - prometheus-process-exporter: 0.7.10-2sipwise1~bpo11+1 + - prometheus-redis-exporter: 1.37.0-2~bpo11+1 + - prometheus-snmp-exporter: 0.20.0-1~bpo11+1 + - victoriametrics: 1.75.0+ds1-1~bpo11+1 + # TT#187100 asterisk g729 (not even in Debian) + - asterisk-g72x: 0.0~git20201027.3855cec-1~bpo11+1 + +bookworm: *packages +bullseye: *packages + +repository-verify: + white-list: [] + +jenkins-jobs: + build_deps: + system-tests: + - data-hal # jenkins-tap-test-${distribution} needed for tap-test job + - libswrate + - libtcap + - ngcp-panel + - sipwise-base + - system-tools + system-tools: + - check-tools # libngcp-log-perl libngcp-service-perl + data-hal: + - ngcp-panel + ngcp-schema: + - ngcp-panel + libswrate: + - kamailio + - sems-pbx + libtcap: + - kamailio + - lnpd + sipwise-base: + - ngcp-panel + - ngcp-schema + check-tools: + - snmp-agent + ngcpcfg: + - bootenv # libngcp-template-perl needed on Dockerfile + ngcp-panel: + - csta-testsuite # ngcp-api-testframework needed on Dockerfile + projects: + - asterisk-voicemail + - backup-tools + - bulk-processor + - bulk-processor-projects + - bootenv + - cdr-exporter + - cfg-schema + - check-tools + - cleanup-tools + - cloudpbx-sources + - csta-testsuite + - data-hal + - db-schema + - deployment-iso + - dhtest + - documentation + - faxserver + - installer + - kamailio + - kamailio-config-tests + - keyring + - klish + - libswrate + - libtcap + - license-client + - lnpd + - lua-ngcp-kamailio + - mediator + - megacli + - metapackages + - monitoring-tools + - ngcp-admin-ui + - ngcp-api-tools + - ngcp-csc-ui + - ngcp-exporter + - ngcp-fauditd + - ngcp-inventory + - ngcp-js-api-client + - ngcp-logfs + - ngcp-klish-config + - ngcp-panel + - ngcp-prompts + - ngcp-rest-api + - ngcp-schema + - ngcp-status + - ngcp-sudo-plugin + - ngcp-support + - ngcp-user-framework + - ngcp-web-tests-e2e + - ngcpcfg + - ngcpcfg-api + - ngcpcfg-ha + - ngrep-sip + - prosody + - pushd + - py-ngcp-kamailio + - rate-o-mat + - reminder + - rtpengine + - sems + - sems-pbx + - sipwise-base + - snmp-agent + - system-tests + - system-tools + - templates + - upgrade + - vmnotify + - voisniff-ng + - websocket + +release_mirror: + common: + copysrc: + - kamailio-config-tests + - klish + - libdata-hal-perl + - libsipwise-base-perl + - lua-ngcp-kamailio + - ngcp-admin-ui + - ngcp-api-tools + - ngcp-asterisk-voicemail + - ngcp-bulk-processor + - ngcp-cdr-exporter + - ngcp-cfg-schema + - ngcp-check-tools + - ngcp-cleanup-tools + - ngcp-csc-ui + - ngcp-db-schema + - ngcp-deployment-iso + - ngcp-dhtest + - ngcp-handbook + - ngcp-installer + - ngcp-js-api-client + - ngcp-kamailio + - ngcp-keyring + - ngcp-klish-config + - ngcp-libswrate + - ngcp-libtcap + - ngcp-license-client + - ngcp-mediator + - ngcp-metapackages + - ngcp-ngcpcfg + - ngcp-panel + - ngcp-prompts + - ngcp-prosody-modules + - ngcp-rate-o-mat + - ngcp-reminder + - ngcp-rest-api + - ngcp-rtpengine + - ngcp-schema + - ngcp-status + - ngcp-support + - ngcp-system-tests + - ngcp-system-tools + - ngcp-templates + - ngcp-upgrade + - ngcp-vmnotify + - ngcp-web-tests-e2e + - ngrep-sip + - py-ngcp-kamailio + remove: + source: + - ngcp-handbook + - ngcp-installer + - ngcp-libswrate + - ngcp-license-client + - ngcp-prompts + - ngcp-templates + - ngcp-upgrade + binary: + - ngcp-handbook-internal + - ngcp-handbook-pdf-internal + matched: [] + ce: + copysrc: + - ngcp-sems + remove: + source: [] + binary: + - ngcp-ngcpcfg-testsuite + matched: + - '*-carrier' + - '*-pro' + - '*-pro-dbgsym' + - 'ngcp-prompts-pro*' + pro: + backports: [] + copysrc: + - megacli + - ngcp-backup-tools + - ngcp-bootenv + - ngcp-bulk-processor-projects + - ngcp-cloudpbx-devices + - ngcp-csta-testsuite + - ngcp-exporter + - ngcp-fauditd + - ngcp-faxserver + - ngcp-inventory + - ngcp-lnpd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-sems-pbx + - ngcp-snmp + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcp-websocket + - ngcpcfg-api + remove: + binary: [] + source: + - ngcp-cloudpbx-devices + - ngcp-csta-testsuite + - ngcp-fauditd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-sems-pbx + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcpcfg-api + matched: + - '*ngcp*-ce' + - '*ngcp*-ce-*' diff --git a/build/fixtures/config.ko/trunk.yml b/build/fixtures/config.ko/trunk.yml new file mode 100644 index 0000000..2e8df16 --- /dev/null +++ b/build/fixtures/config.ko/trunk.yml @@ -0,0 +1,290 @@ +distris: + - release-trunk-buster + - release-trunk-bullseye + +debian_release: buster + +release-trunk-bullseye: + # TT#44190 needed by ngcp-panel + - grafana: 7.3.1 + +release-trunk-buster: + # TT#32916 TT#44119 bcg729 for G.729 codec support for rtpengine + - bcg729: 1.0.4+git20180222-0.1~bpo10+1 + # TT#44190 needed by ngcp-panel + - grafana: 5.4.3 + # TT#59085 needed by csta-testsuite, not available in buster (or sid) + - libanyevent-connector-perl: 0.03-1~bpo10+1 + - libanyevent-websocket-client-perl: 0.53-0.1sipwise1~bpo10+1 + - libprotocol-websocket-perl: 0.26-1~bpo10+1 + - liburi-ws-perl: 0.03-1~bpo10+1 + # TT#69900 needed by ngcp-panel, not available in buster (or sid) + - libcatalyst-plugin-session-store-redis-perl: 0.09-0.1sipwise1~bpo10+1 + # TT#69950 needed by bulk-processor, not available in buster (or sid) + - libexcel-reader-xlsx-perl: 0.00~git20161017.3b576a55-0.1sipwise1~bpo10+1 + # MT#13097 + TT#11775 + TT#44117 needed by libinewrate + - libactivemq-cpp: 3.9.4-0.1~bpo10+1sipwise1 + # TT#66753 needed by sems*, version in buster is too old + - log4cplus: 2.0.4-0.1sipwise1~bpo10+1 + # TT#44184 needed by platform + - mariadb-connector-odbc: 3.1.1-1sipwise1~bpo10+1 + # TT#44155 needed by sems*, not available in Buster at the moment + # TT#55301 does not build with latest mariadb libraries. + - mysql++: 3.2.2+pristine-2sipwise1~bpo10+1 + # MT#19499 local robustness patches + - net-snmp: 5.7.3+dfsg-5sipwise1~bpo10+1 + # TT#2398 influxdb + dependencies + - golang-github-influxdata-influxql: 0.0~git20180925.1cbfca8-0.1sipwise1~bpo10+1 + # TT#28100 needed by platform + # + Packaging updates: R³:no. + # + Default to use the unix socket if available. + - influxdb: 1.6.4-1+sipwise1~bpo10+1 + # TT#44187 needed by platform + # + Packaging updates: R³:no, Standards-Version=4.2.1, debhelper=11, © years. + # + Version should have been -0.1sipwiseN from the start. + - influxdb-relay: 0.0~20161114.0.adaa2ea-1sipwise2~bpo10+1 + # TT#44188 needed by platform + - telegraf: 1.7.4-0.1sipwise1~bpo10+4 + # TT#44918 Needed for Debian/buster PRO/Carrier + - ngcp-pxe-boot: 0.6.3.1+0~sipwise20191022 + # TT#59330 rebuild of package pulled from non-free + - snmp-mibs-downloader: 1.2~bpo10+1 + # TT#62202 Needed for Debian/buster PRO/Carrier + - monit: 5.25.2-3+deb10u1 + # TT#72157 version with changes from Roman will be released as 1.4.7 + - sngrep: 1.4.6-2sipwise1~bpo10+1 + # TT#73105 system testing + - goss: 0.3.9-0.1sipwise1~bpo10+1 + # TT#66583 ngcp-prosody-modules + - lua-redis: 2.0.5~git20141117.880dda9-3~bpo10+1 + +repository-verify: + white-list: [] + +jenkins-jobs: + ignore: + - heartbeat-binaries + - heartbeat-tap-test + build_deps: + data-hal: + - ngcp-panel + ngcp-schema: + - ngcp-panel + libinewrate: + - sems-pbx + libswrate: + - kamailio + - sems-pbx + libtcap: + - kamailio + - lnpd + sipwise-base: + - ngcp-panel + - ngcp-schema + check-tools: + - snmp-agent + projects: + - asterisk-voicemail + - backup-tools + - bulk-processor + - bulk-processor-projects + - bootenv + - cdr-exporter + - cfg-schema + - check-tools + - cleanup-tools + - cloudpbx-sources + - comx-fileshare-service + - csta-testsuite + - data-hal + - db-schema + - deployment-iso + - dhtest + - documentation + - faxserver + - heartbeat + - installer + - janus-admin + - janus-client + - kamailio + - kamailio-config-tests + - keyring + - klish + - libinewrate + - libswrate + - libtcap + - license-client + - lnpd + - lua-ngcp-kamailio + - mediator + - megacli + - metapackages + - monitoring-tools + - ngcp-api-tools + - ngcp-csc-ui + - ngcp-exporter + - ngcp-fauditd + - ngcp-inventory + - ngcp-logfs + - ngcp-klish-config + - ngcp-panel + - ngcp-prompts + - ngcp-rtcengine + - ngcp-schema + - ngcp-status + - ngcp-sudo-plugin + - ngcp-support + - ngcp-user-framework + - ngcpcfg + - ngcpcfg-api + - ngcpcfg-ha + - ngrep-sip + - prosody + - pushd + - rate-o-mat + - reminder + - rtpengine + - sems + - sems-ha + - sems-modules + - sems-pbx + - sipwise-base + - snmp-agent + - system-tests + - system-tools + - templates + - upgrade + - vmnotify + - voisniff-ng + - websocket + +release_mirror: + common: + copysrc: + - kamailio-config-tests + - klish + - libdata-hal-perl + - libsipwise-base-perl + - lua-ngcp-kamailio + - ngcp-api-tools + - ngcp-asterisk-voicemail + - ngcp-bulk-processor + - ngcp-cdr-exporter + - ngcp-cfg-schema + - ngcp-check-tools + - ngcp-cleanup-tools + - ngcp-csc-ui + - ngcp-db-schema + - ngcp-deployment-iso + - ngcp-dhtest + - ngcp-handbook + - ngcp-installer + - ngcp-kamailio + - ngcp-keyring + - ngcp-klish-config + - ngcp-libswrate + - ngcp-libtcap + - ngcp-license-client + - ngcp-mediator + - ngcp-metapackages + - ngcp-ngcpcfg + - ngcp-panel + - ngcp-prompts + - ngcp-prosody-modules + - ngcp-rate-o-mat + - ngcp-reminder + - ngcp-rtpengine + - ngcp-schema + - ngcp-status + - ngcp-support + - ngcp-system-tests + - ngcp-system-tools + - ngcp-templates + - ngcp-upgrade + - ngcp-vmnotify + - ngrep-sip + remove: + source: + - ngcp-handbook + - ngcp-installer + - ngcp-libswrate + - ngcp-license-client + - ngcp-prompts + - ngcp-templates + - ngcp-upgrade + binary: + - ngcp-handbook-internal + - ngcp-handbook-pdf-internal + matched: [] + ce: + copysrc: + - ngcp-sems + remove: + source: [] + binary: + - ngcp-ngcpcfg-testsuite + matched: + - '*-carrier' + - '*-pro' + - '*-pro-dbgsym' + pro: + backports: + # cloudpbx firmwares(PRO ONLY), commented are empty + #- ngcp-cloudpbx-firmwares-audiocodes: '1.0.0.0' + - ngcp-cloudpbx-firmwares-ale: '1.0.0.1' + - ngcp-cloudpbx-firmwares-cisco: '1.0.0.0' + - ngcp-cloudpbx-firmwares-grandstream: '1.0.0.1' + - ngcp-cloudpbx-firmwares-innovaphone: '1.0.0.0' + - ngcp-cloudpbx-firmwares-panasonic: '1.0.0.2' + - ngcp-cloudpbx-firmwares-polycom: '1.0.0.1' + #- ngcp-cloudpbx-firmwares-snom: '1.0.0.0' + - ngcp-cloudpbx-firmwares-yealink: '1.0.0.1' + copysrc: + - heartbeat-2 + - janus-admin + - janus-client + - megacli + - ngcp-backup-tools + - ngcp-bootenv + - ngcp-bulk-processor-projects + - ngcp-cloudpbx-devices + - ngcp-comx-fileshare-service + - ngcp-csta-testsuite + - ngcp-exporter + - ngcp-fauditd + - ngcp-faxserver + - ngcp-inventory + - ngcp-libinewrate + - ngcp-lnpd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-rtcengine + - ngcp-sems-modules + - ngcp-sems-pbx + - ngcp-snmp + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcp-websocket + - ngcpcfg-api + remove: + binary: [] + source: + - ngcp-cloudpbx-devices + - ngcp-csta-testsuite + - ngcp-fauditd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-sems-modules + - ngcp-sems-pbx + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcpcfg-api + matched: + - '*ngcp*-ce' + - '*ngcp*-ce-*' diff --git a/build/fixtures/config.ko/trunk_wrong_distri.yml b/build/fixtures/config.ko/trunk_wrong_distri.yml new file mode 100644 index 0000000..16e3cc8 --- /dev/null +++ b/build/fixtures/config.ko/trunk_wrong_distri.yml @@ -0,0 +1,239 @@ +distris: + - release-trunk-bullseye + +debian_release: buster + +release-trunk-bullseye: + # TT#44190 needed by ngcp-panel + - grafana: 7.3.1 + +repository-verify: + white-list: [] + +jenkins-jobs: + ignore: + - heartbeat-binaries + - heartbeat-tap-test + build_deps: + data-hal: + - ngcp-panel + ngcp-schema: + - ngcp-panel + libinewrate: + - sems-pbx + libswrate: + - kamailio + - sems-pbx + libtcap: + - kamailio + - lnpd + sipwise-base: + - ngcp-panel + - ngcp-schema + check-tools: + - snmp-agent + projects: + - asterisk-voicemail + - backup-tools + - bulk-processor + - bulk-processor-projects + - bootenv + - cdr-exporter + - cfg-schema + - check-tools + - cleanup-tools + - cloudpbx-sources + - comx-fileshare-service + - csta-testsuite + - data-hal + - db-schema + - deployment-iso + - dhtest + - documentation + - faxserver + - heartbeat + - installer + - janus-admin + - janus-client + - kamailio + - kamailio-config-tests + - keyring + - klish + - libinewrate + - libswrate + - libtcap + - license-client + - lnpd + - lua-ngcp-kamailio + - mediator + - megacli + - metapackages + - monitoring-tools + - ngcp-api-tools + - ngcp-csc-ui + - ngcp-exporter + - ngcp-fauditd + - ngcp-inventory + - ngcp-logfs + - ngcp-klish-config + - ngcp-panel + - ngcp-prompts + - ngcp-rtcengine + - ngcp-schema + - ngcp-status + - ngcp-sudo-plugin + - ngcp-support + - ngcp-user-framework + - ngcpcfg + - ngcpcfg-api + - ngcpcfg-ha + - ngrep-sip + - prosody + - pushd + - rate-o-mat + - reminder + - rtpengine + - sems + - sems-ha + - sems-modules + - sems-pbx + - sipwise-base + - snmp-agent + - system-tests + - system-tools + - templates + - upgrade + - vmnotify + - voisniff-ng + - websocket + +release_mirror: + common: + copysrc: + - kamailio-config-tests + - klish + - libdata-hal-perl + - libsipwise-base-perl + - lua-ngcp-kamailio + - ngcp-api-tools + - ngcp-asterisk-voicemail + - ngcp-bulk-processor + - ngcp-cdr-exporter + - ngcp-cfg-schema + - ngcp-check-tools + - ngcp-cleanup-tools + - ngcp-csc-ui + - ngcp-db-schema + - ngcp-deployment-iso + - ngcp-dhtest + - ngcp-handbook + - ngcp-installer + - ngcp-kamailio + - ngcp-keyring + - ngcp-klish-config + - ngcp-libswrate + - ngcp-libtcap + - ngcp-license-client + - ngcp-mediator + - ngcp-metapackages + - ngcp-ngcpcfg + - ngcp-panel + - ngcp-prompts + - ngcp-prosody-modules + - ngcp-rate-o-mat + - ngcp-reminder + - ngcp-rtpengine + - ngcp-schema + - ngcp-status + - ngcp-support + - ngcp-system-tests + - ngcp-system-tools + - ngcp-templates + - ngcp-upgrade + - ngcp-vmnotify + - ngrep-sip + remove: + source: + - ngcp-handbook + - ngcp-installer + - ngcp-libswrate + - ngcp-license-client + - ngcp-prompts + - ngcp-templates + - ngcp-upgrade + binary: + - ngcp-handbook-internal + - ngcp-handbook-pdf-internal + matched: [] + ce: + copysrc: + - ngcp-sems + remove: + source: [] + binary: + - ngcp-ngcpcfg-testsuite + matched: + - '*-carrier' + - '*-pro' + - '*-pro-dbgsym' + pro: + backports: + # cloudpbx firmwares(PRO ONLY), commented are empty + #- ngcp-cloudpbx-firmwares-audiocodes: '1.0.0.0' + - ngcp-cloudpbx-firmwares-ale: '1.0.0.1' + - ngcp-cloudpbx-firmwares-cisco: '1.0.0.0' + - ngcp-cloudpbx-firmwares-grandstream: '1.0.0.1' + - ngcp-cloudpbx-firmwares-innovaphone: '1.0.0.0' + - ngcp-cloudpbx-firmwares-panasonic: '1.0.0.2' + - ngcp-cloudpbx-firmwares-polycom: '1.0.0.1' + #- ngcp-cloudpbx-firmwares-snom: '1.0.0.0' + - ngcp-cloudpbx-firmwares-yealink: '1.0.0.1' + copysrc: + - heartbeat-2 + - janus-admin + - janus-client + - megacli + - ngcp-backup-tools + - ngcp-bootenv + - ngcp-bulk-processor-projects + - ngcp-cloudpbx-devices + - ngcp-comx-fileshare-service + - ngcp-csta-testsuite + - ngcp-exporter + - ngcp-fauditd + - ngcp-faxserver + - ngcp-inventory + - ngcp-libinewrate + - ngcp-lnpd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-rtcengine + - ngcp-sems-modules + - ngcp-sems-pbx + - ngcp-snmp + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcp-websocket + - ngcpcfg-api + remove: + binary: [] + source: + - ngcp-cloudpbx-devices + - ngcp-csta-testsuite + - ngcp-fauditd + - ngcp-logfs + - ngcp-monitoring-tools + - ngcp-ngcpcfg-ha + - ngcp-pushd + - ngcp-sems-modules + - ngcp-sems-pbx + - ngcp-sudo-plugin + - ngcp-user-framework + - ngcp-voisniff + - ngcpcfg-api + matched: + - '*ngcp*-ce' + - '*ngcp*-ce-*' diff --git a/build/fixtures/config/trunk.yml b/build/fixtures/config/trunk.yml index 2e8df16..0e7930d 100644 --- a/build/fixtures/config/trunk.yml +++ b/build/fixtures/config/trunk.yml @@ -1,13 +1,8 @@ distris: - release-trunk-buster - - release-trunk-bullseye debian_release: buster -release-trunk-bullseye: - # TT#44190 needed by ngcp-panel - - grafana: 7.3.1 - release-trunk-buster: # TT#32916 TT#44119 bcg729 for G.729 codec support for rtpengine - bcg729: 1.0.4+git20180222-0.1~bpo10+1 diff --git a/build/test/test_models.py b/build/test/test_models.py index 06fe3c5..5a1f441 100644 --- a/build/test/test_models.py +++ b/build/test/test_models.py @@ -54,10 +54,10 @@ class BuildReleaseManagerTestCase(BaseTest): def test_create_release_trunk(self, dlf): br = BuildRelease.objects.create_build_release( - "AAA", "release-trunk-bullseye" + "AAA", "release-trunk-buster" ) self.assertEqual(br.release, "trunk") - self.assertEqual(br.distribution, "bullseye") + self.assertEqual(br.distribution, "buster") self.assertIsNone(br.tag) self.assertEqual(br.branch, "master") self.assertNotEqual(len(br.projects), 0) diff --git a/build/test/test_utils.py b/build/test/test_utils.py index 56026b0..a381c7b 100644 --- a/build/test/test_utils.py +++ b/build/test/test_utils.py @@ -115,7 +115,6 @@ class ReleaseConfigTestCase(SimpleTestCase): supported = [ "trunk-weekly", "release-trunk-buster", - "release-trunk-bullseye", "mr11.0", "mr10.1.1", "mr10.1", @@ -162,8 +161,6 @@ class ReleaseConfigTestCase(SimpleTestCase): self.assertEqual(len(rc.projects), 73) def test_guess_trunk_filename(self): - res = guess_trunk_filename("release-trunk-bullseye") - self.assertEqual(res, "trunk") res = guess_trunk_filename("release-trunk-buster") self.assertEqual(res, "trunk") res = guess_trunk_filename("release-trunk-weekly") @@ -173,11 +170,8 @@ class ReleaseConfigTestCase(SimpleTestCase): rc = ReleaseConfig("trunk") self.assertEqual(rc.debian_release, "buster") - rc = ReleaseConfig("release-trunk-bullseye") - self.assertEqual(rc.debian_release, "bullseye") - - rc = ReleaseConfig("trunk", "bullseye") - self.assertEqual(rc.debian_release, "bullseye") + with self.assertRaises(err.WrongTrunkDistribution): + ReleaseConfig("trunk", "bullseye") rc = ReleaseConfig("trunk-weekly") self.assertEqual(rc.debian_release, "bullseye") @@ -611,6 +605,7 @@ class CheckConfig(SimpleTestCase): def setUp(self): self.data = { "jenkins-jobs": {}, + "debian_release": "buster", "distris": ["release-trunk-buster"], "release-trunk-buster": [], } @@ -638,6 +633,63 @@ class CheckConfig(SimpleTestCase): with self.assertRaises(err.CircularBuildDependencies): ReleaseConfig("fake", config=self.data) + def test_no_debian_release(self): + del self.data["debian_release"] + with self.assertRaises(err.NoDebianReleaseInfo): + ReleaseConfig("fake", config=self.data) + + def test_trunk(self): + ko = FIXTURES_PATH.joinpath("config", "trunk.yml") + data = ReleaseConfig.load_config(ko) + ReleaseConfig("fake", config=data) + + def test_mrXY(self): + ko = FIXTURES_PATH.joinpath("config", "mr11.0.yml") + data = ReleaseConfig.load_config(ko) + ReleaseConfig("fake", config=data) + + @override_settings( + BUILD_REPOS_SCRIPTS_CONFIG_DIR=FIXTURES_PATH.joinpath("config.ko") + ) + def test_trunk_ko(self): + with self.assertRaises(err.NoUniqueTrunk): + ReleaseConfig("trunk") + + def test_trunk_wrong_distri(self): + ko = FIXTURES_PATH.joinpath("config.ko", "trunk_wrong_distri.yml") + data = ReleaseConfig.load_config(ko) + with self.assertRaises(err.WrongTrunkDistribution): + ReleaseConfig("fake", config=data) + + @override_settings( + BUILD_REPOS_SCRIPTS_CONFIG_DIR=FIXTURES_PATH.joinpath("config.ko") + ) + def test_mrXX_ko(self): + match = "release-trunk-bullseye found in a release config" + with self.assertRaisesRegex(err.WrongDistris, match): + ReleaseConfig("mr11.0") + + def test_mrXX_check_ko(self): + ko = FIXTURES_PATH.joinpath("config.ko", "mr11.0.yml") + data = ReleaseConfig.load_config(ko) + match = "release-trunk-bullseye found in a release config" + with self.assertRaisesRegex(err.WrongDistris, match): + ReleaseConfig("fake", config=data) + + def test_mrXX_three_dists(self): + ko = FIXTURES_PATH.joinpath("config.ko", "mr11.0_three_dists.yml") + data = ReleaseConfig.load_config(ko) + match = "more than two distris in a release config" + with self.assertRaisesRegex(err.WrongDistris, match): + ReleaseConfig("fake", config=data) + + def test_mrXX_no_debian(self): + ko = FIXTURES_PATH.joinpath("config.ko", "mr11.0_no_debian.yml") + data = ReleaseConfig.load_config(ko) + match = "bullseye not in distris in a release config" + with self.assertRaisesRegex(err.WrongDistris, match): + ReleaseConfig("fake", config=data) + @override_settings( BUILD_REPOS_SCRIPTS_CONFIG_DIR=FIXTURES_PATH.joinpath("config.next") diff --git a/build/utils.py b/build/utils.py index f713b89..307779b 100644 --- a/build/utils.py +++ b/build/utils.py @@ -312,25 +312,67 @@ class ReleaseConfig(object): ) self.config = self.load_config(self.config_path) + def validate(self): + try: + if self.release is None: + raise err.NoReleaseInfo() + except KeyError: + msg = "{} has no 'distris' info" + raise err.NoDistrisInfo(msg.format(self.config_file)) + try: + if self.debian_release is None: + raise err.NoDebianReleaseInfo() + except KeyError: + msg = "{} has no 'debian_release' info" + raise err.NoDebianReleaseInfo(msg.format(self.config_file)) + debian_release = self.debian_release + # don't allow more than one release-trunk-* + trunks = [] + is_release = False + for dist in self.config["distris"]: + if debian_release == dist: + is_release = True + if dist.startswith("release-trunk-"): + ok, _ = is_release_trunk(dist) + if ok: + trunks.append(dist) + len_trunks = len(trunks) + if len_trunks > 1: + raise err.NoUniqueTrunk() + elif len_trunks == 1: + dist = trunks[0] + if f"release-trunk-{debian_release}" != dist: + msg = ( + f"expected release-trunk-{debian_release} " + f"but {dist} found" + ) + raise err.WrongTrunkDistribution(msg) + if is_release: + msg = f"{dist} found in a release config" + raise err.WrongDistris(msg) + elif is_release: + if len(self.config["distris"]) > 2: + msg = "more than two distris in a release config" + raise err.WrongDistris(msg) + else: + msg = f"{debian_release} not in distris in a release config" + raise err.WrongDistris(msg) + self.check_circular_dependencies() + def __init__(self, name, distribution=None, config=None): if config is None: self._get_config(name, distribution) else: self.config_file = "fake.yml" self.config_path = "/dev/null" + self.distribution = None self.config = config try: self.jenkins_jobs = self.config["jenkins-jobs"] except KeyError: msg = "{} has no 'jenkins-jobs' info" raise err.NoJenkinsJobsInfo(msg.format(self.config_file)) - try: - if self.release is None: - raise err.NoReleaseInfo() - except KeyError: - msg = "{} has no 'distris' info" - raise err.NoDistrisInfo(msg.format(self.config_file)) - self.check_circular_dependencies() + self.validate() def is_build_dep(self, prj: str) -> bool: return prj in self.build_deps.keys()