TT#15305 build: trigger weekly-build-matrix-trunk-weekly

when build release is done... lets trigger the job to build Vms

Change-Id: I5fdf80ae0c8fdd5de6e5e19cc85bbf9c98dc354c
pull/7/head
Victor Seva 4 years ago
parent 753e79f548
commit 66d3cbb933

@ -0,0 +1,16 @@
[
{
"model": "build.buildrelease",
"pk": 1,
"fields": {
"uuid": "dbe569f7-eab6-4532-a6d1-d31fb559649b",
"start_date": "2017-07-14T07:55:11.714Z",
"tag": "",
"branch": "master",
"release": "release-trunk-weekly",
"distribution": "bullseye",
"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,libinewrate,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",
"built_projects": "release-copy-debs-yml,sipwise-base,data-hal,libswrate,libinewrate,libtcap,system-tools,ngcpcfg,check-tools,ngcp-schema,ngcp-panel,cdr-exporter,bootenv,backup-tools,asterisk-voicemail,bulk-processor-projects,cleanup-tools,bulk-processor,csta-testsuite,dhtest,deployment-iso,cloudpbx-sources,faxserver,db-schema,installer,keyring,cfg-schema,klish,license-client,mediator,lnpd,lua-ngcp-kamailio,kamailio-config-tests,metapackages,monitoring-tools,documentation,megacli,ngcp-api-tools,ngcp-fauditd,ngcp-exporter,ngcp-inventory,ngcp-admin-ui,kamailio,ngcp-js-api-client,ngcp-klish-config,ngcp-sudo-plugin,ngcp-status,ngcp-logfs,ngcp-user-framework,ngcp-support,ngcp-web-tests-e2e,ngcpcfg-api,ngcpcfg-ha,ngcp-rest-api,ngrep-sip,ngcp-csc-ui,pushd,prosody,reminder,rate-o-mat,py-ngcp-kamailio,snmp-agent,system-tests,rtpengine,vmnotify,voisniff-ng,sems,templates,sems-pbx,websocket,upgrade"
}
}
]

@ -18,6 +18,7 @@ from django.apps import apps
from .conf import settings
from .utils import trigger_build
from .utils import trigger_build_matrix
from .utils import trigger_copy_deps
logger = structlog.get_logger(__name__)
@ -93,4 +94,7 @@ def build_resume(pk):
br.append_triggered(prj)
else:
log.debug("BuildRelease has no next")
if br.release == "release-trunk-weekly":
url = trigger_build_matrix()
log.info("build_matrix triggered", instance=str(br), url=url)
break

@ -262,3 +262,34 @@ class JBIManageTest(BaseTest):
self.assertEqual(br.triggered_projects, "ngcp-schema")
params["project"] = "ngcp-schema-get-code"
tb.assert_called_with(**params)
@override_settings(JBI_ALLOWED_HOSTS=["fake.local"])
@patch("repoapi.utils.dlfile")
@patch("build.tasks.trigger_build")
@patch("build.tasks.trigger_build_matrix")
class WeeklyTest(BaseTest):
fixtures = [
"test_weekly",
]
release = "release-trunk-weekly"
release_uuid = "dbe569f7-eab6-4532-a6d1-d31fb559649b"
@override_settings(BUILD_POOL=2)
def test_jbi_manage_trigger_matrix(self, tbm, tb, dl):
br = BuildRelease.objects.get(uuid=self.release_uuid)
JenkinsBuildInfo.objects.create(
job_url="http://fake.local/job/ngcp-prompts-repos/",
projectname="ngcp-prompts",
jobname="ngcp-prompts-repos",
tag="UUIDA",
param_release=self.release,
param_release_uuid=self.release_uuid,
buildnumber=1,
result="SUCCESS",
)
br = BuildRelease.objects.get(pk=br.pk)
self.assertTrue(br.built_projects.endswith("ngcp-prompts"))
self.assertEqual(br.pool_size, 0)
tb.assert_not_called()
tbm.assert_called_once_with()

@ -28,15 +28,13 @@ from repoapi.utils import open_jenkins_url
logger = structlog.get_logger(__name__)
base_url = (
"{base}/job/{job}/buildWithParameters?"
"token={token}&cause={cause}&uuid={uuid}&"
"release_uuid={release_uuid}"
)
_url = "{base}/job/{job}/buildWithParameters?" "token={token}&cause={cause}"
base_url = _url + "&uuid={uuid}&release_uuid={release_uuid}"
project_url = (
base_url + "&branch={branch}&tag={tag}&release={release}&"
"distribution={distribution}"
)
build_matrix_url = _url
copy_deps_url = base_url + "&release={release}&internal={internal}"
re_release = re.compile(r"^release-(mr[0-9]+\.[0-9]+(\.[0-9]+)?)$")
re_release_common = re.compile(r"^(release-)?(mr[0-9]+\.[0-9]+)(\.[0-9]+)?$")
@ -73,6 +71,21 @@ def get_common_release(version):
return "master"
def trigger_build_matrix():
params = {
"base": settings.JENKINS_URL,
"token": urllib.parse.quote(settings.JENKINS_TOKEN),
"job": "weekly-build-matrix-trunk-weekly",
"cause": "repoapi finished to build trunk-weekly",
}
url = _url.format(**params)
if settings.DEBUG:
logger.info("Debug mode, would trigger: %s", url)
else:
open_jenkins_url(url)
return "{base}/job/{job}/".format(**params)
def trigger_copy_deps(release, internal, release_uuid, uuid=None):
if release.startswith("release-trunk-"):
simple = release

Loading…
Cancel
Save