Victor Seva
208528d5ac
MT#62714 build: allow to change pool_size via admin panel
...
We have a fixed value in config but for repoapi-dev it's just 1.
When doing tests, now that we have two slaves it's convenient to
be able to change that at will.
That could help too if we want to increase/decrease in the middle
of a already triggered build
Change-Id: I3c154ae2e3a754f995deb856e7b9b85ca1148107
2 weeks ago
Victor Seva
37b7994091
MT#61875 build: support failed BuildRelease
...
In order to allow to keep information of failed builds. Before
we had to remove the info from a failed build in order to trigger
another full build.
Change-Id: I7cfcbedecdfed81951391fcdd84bb5be3c1b9e24
4 months ago
Victor Seva
373b26dc0c
MT#61223 repoapi: fix views for trunk-next
...
Change-Id: I027aaed4c94a63cba165b83c23e69cb5369fd9f6
7 months ago
Victor Seva
21803cf66d
MT#61223 build: fix UnboundLocalError
...
> if not br.last().done:
> logger.info(f"release:{release} is already building")
> > raise PreviousBuildNotDone(msg)
> E UnboundLocalError: cannot access local variable 'msg' where it is not associated with a value
Change-Id: I4b50fc8f328c24e6bec5ef940d5d7f4d4732e89b
7 months ago
Victor Seva
222a9ede9b
MT#61223 build: fix release parameter for trunk-next on builds
...
Change-Id: I38d860d968f38d1175f46fbeb4db90127524ab1b
7 months ago
Victor Seva
d6d11a67db
MT#61223 build: fix release at trigger_copy_deps on trunk-next
...
Change-Id: I613364e1acab58556bd9d74684e541d4566fcabe
7 months ago
Victor Seva
2768edea92
MT#61223 build: fix trunk-next builds
...
* set release to "trunk-next"
* create tests just for trunk-next scenario
Change-Id: I81d2510250536abeae9cba1824f25e3f5095c908
7 months ago
Victor Seva
dc4752bde2
MT#61223 [build] improve validation of release configs
...
* remove support of more than one release-trunk-*
Use trunk-next.yml for that
Change-Id: I8ddee56c314a1e2a1ca6d7a230b64437f6dc9c7c
7 months ago
Victor Seva
42bc0bb4a2
MT#57906 build: allow uuid optional parameter on command
...
Change-Id: I00db4167b6b55a4086318866d01f738bff906f4a
2 years ago
Victor Seva
ae8abca20f
MT#57181 build: fix guessing release-trunk-* filename config
...
improve tests coverage
Change-Id: I225a4cefaeea92e3410dd362b0eab38d0d546685
2 years ago
Victor Seva
e996b053e7
MT#57181 build: support trunk-next.yml
...
Change-Id: Ie4276a1029dd6e8564fbbf244da4739b7aabd764
2 years ago
Victor Seva
75e3ccc3a5
MT#55988 improve export process
...
add export action on admin
Change-Id: I18f211cd6157b55bc9bbc8d76f10aa38790bcfbb
2 years ago
Victor Seva
9383016f3d
MT#56231 remove ppa for scenario mrX.X.X review merged
...
mrX.X.X merges will not trigger a build, so -repos job will never
happen with eventtype 'change-merged'
now -gerrit job sends the proper values of branch and ppa so
we can detect the scenario and clean the ppa
* move common regex definitions to repoapi.utils
Change-Id: I2b6afd0a7dea0fe07f47ba76bd6f9c2fa88e85ce
2 years ago
Victor Seva
0eabc3f67b
MT#55524 build: use <distribution>/master as branch instead of master
...
In order to support building the next supported release using the special
branch <distribution>/master if exists. Jenkins job <project>-get-code
will detect the missing branch and fallback to master if necessary
Change-Id: I798b5b1653e52e9cb4b91e9aca18cf7ec6a0916a
2 years ago
Victor Seva
951a274c51
MT#33006 repoapi: upgrade structlog config (3.0+)
...
https: //django-structlog.readthedocs.io/en/latest/upgrade_guide.html
Change-Id: I76b4f26aca2a763fb106bfe6c7c85ea3b6c06d16
3 years ago
Victor Seva
f0c9a16f90
TT#15305 build: remove print on check_circular_dependencies
...
* add some more tests for release process
Change-Id: I784d3fba5f95b06543f8586df2b264e9a99386e8
3 years ago
Victor Seva
8e29dc59c5
TT#15305 build: continue building if failure jobs are not in build_deps
...
Change-Id: Ibaf2360e388ad57551bd2691c310b8ad0e2f3896
3 years ago
Victor Seva
c8d0547c1d
TT#15305 build: fix typo in method name
...
Change-Id: Icc84ef5a97d9cc955c8ac5cf68bc7f3e335e7292
3 years ago
Victor Seva
fe4f7fc8ec
TT#15305 build: fix release-trunk-{version}
...
* don't delete all history, just the last one
Change-Id: I7198ebcf87d401a9ff9a3eab0fe541534903f638
3 years ago
Victor Seva
d2e6b1752a
TT#15305 build: provide end point to delete latest build of release-trunk-{distribution}
...
* /build/release-trunk-{version}/ DELETE
when we trigger the deletion of the repository, we should remove the
non-finised instance of it, so we can later create another one
Change-Id: Ie7e96aebfbe719dee4a9c6e1da25be08e6a38ab7
3 years ago
Victor Seva
6a04b32005
TT#190200 build: provide endpoint to check release config
...
/config/check/ admits POST with release config yaml
Change-Id: Iefdb4d807f600015ebb8e9074c46f483a12e4430
3 years ago
Victor Seva
6cf063d908
TT#190200 build: detect circular dependencies
...
Change-Id: Ib98fef31cb51d447518ec0471a9bbf02beff6fe8
3 years ago
Victor Seva
42355526b0
MT#52615 build: add build_deps to admin fields
...
* this helps to visualize build process
Change-Id: I4a066dccee4b59b63f193e491bcd66cc9de8e1e9
3 years ago
Victor Seva
cc47f0acac
TT#190200 build: support several levels of dependencies
...
Change-Id: I19a930fe95bb292912dadc67440b750533c34b20
3 years ago
Victor Seva
9692d18b06
TT#188000 build: fix retrigger error
...
│[info ] request_started [django_structlog.middlewares.request] ip=10.10.26.23 request=POST /build/70c2ba0c-7459-4d54-a584-630b4f5269fb/ngcp-schema/?format=json request_id=dceefdd8-6dfc-49f8-a262-194bd0e30707 user_agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebK│
│Traceback (most recent call last): │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response │
│ response = wrapped_callback(request, *callback_args, **callback_kwargs) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view │
│ return view_func(*args, **kwargs) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/django/views/generic/base.py", line 70, in view │
│ return self.dispatch(request, *args, **kwargs) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch │
│ response = self.handle_exception(exc) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception │
│ self.raise_uncaught_exception(exc) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception │
│ raise exc │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/views.py", line 497, in dispatch │
│ self.initial(request, *args, **kwargs) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/views.py", line 415, in initial │
│ self.check_permissions(request) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/views.py", line 332, in check_permissions │
│ if not permission.has_permission(request, self): │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/permissions.py", line 76, in has_permission │
│ self.op2.has_permission(request, view) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/permissions.py", line 229, in has_permission │
│ queryset = self._queryset(view) │
│ File "/var/lib/repoapi/venv_prod/lib/python3.9/site-packages/rest_framework/permissions.py", line 205, in _queryset │
│ assert hasattr(view, 'get_queryset') \ │
│AssertionError: Cannot apply DjangoModelPermissions on a view that does not set `.queryset` or have a `.get_queryset()` method.
Change-Id: I31ea798c4b34a9f7c2ff15e4d4be52c9558fec0d
3 years ago
Victor Seva
dc4d12a68f
TT#15305 build: don't trigger build_matrix if not done
...
Change-Id: I0832426b87d639ea85f2cd261d3313a8b6663ffc
3 years ago
Victor Seva
1ad5cce788
TT#152750 enforce perms in views and templates
...
Change-Id: Ifbffb02c5bc833cc4295745c7729e34fa8e0486a
3 years ago
Victor Seva
10ce513d20
TT#152750 build: permissions
...
* We want to split build releases from hotfix perms
* create dev and devops groups and assign desired permissions.
These groups will match LDAP groups.
* create permissions using hack stolen from
https://stackoverflow.com/questions/29296757/django-data-migrate-permissions
Change-Id: I1b82ebf13aa3cba05e4733e4bef186fbbb52bb13
3 years ago
Victor Seva
dd26740524
TT#15305 relase_dashboard: build_releases, split master releases
...
* fix order with humansort
* add label mrX.X
Change-Id: Ibe26b0e77cf1b47691db4baa1045d9fffac83198
3 years ago
Victor Seva
6d36b04d65
TT#15305 fix urls
...
* don't add '^' twice for api urls
* don't add format_suffix for gerrit/refresh
* add missing format parameter for API views
Change-Id: I2c8cef000c0aec3524302cc5c5a7a201f9cf90d1
3 years ago
Victor Seva
28a0d343ef
TT#15305 build: add missing readonly fields to admin panel
...
Change-Id: I1043d16660d3c9e8daab66082884da49ef4b87c3
3 years ago
Victor Seva
2a335babf1
TT#15305 build: improve refresh_projects
...
When refreshing list of projects, remove every info related to
any old project
We had this scenario when releasing mr10.5, ngcp-cve-scanner was
wrongly added as a project and we couldn't resume the build until
I removed the related info
Change-Id: I58ee97f3256bb63a0a07a6ed606ede0c233cfb84
3 years ago
Victor Seva
460f775436
TT#15305 build: don't trigger already triggered external job
...
* build_resume can be triggered several times due to pool size
* keep triggered_jobs info in db
Change-Id: Iedfca9d386af5cfd9f52b6fd8b513c181f2d4983
3 years ago
Victor Seva
66d3cbb933
TT#15305 build: trigger weekly-build-matrix-trunk-weekly
...
when build release is done... lets trigger the job to build Vms
Change-Id: I5fdf80ae0c8fdd5de6e5e19cc85bbf9c98dc354c
3 years ago
Victor Seva
753e79f548
TT#15305 build: fix get_common_release for trunk-weekly
...
Change-Id: Id19002bf24a4416e835d4765e87f9d4b3637b746
3 years ago
Victor Seva
9159fbae1d
TT#15305 build: support trunk-weekly release
...
* trunk-weekly as a normal release, with its own
config file. The idea is to convert eventually
trunk-* too
* match for relase-trunk-* doesn't work anymore
Change-Id: I4967ccc3b5ac47dbebdf6da16d404710fc72da49
3 years ago
Victor Seva
da38972015
TT#15305 build: don't allow trigger builds that have unfinished previous builds
...
* don't allow to trigger more than one build for instance of
release-trunk-* or mrX.Y
* autoupdate pre-commit config
Change-Id: I7183b8645155ca017e9796664d2570e88a29c44e
3 years ago
Victor Seva
c488bc8591
TT#15305 build: fix detection of build permissions
...
* calling build from API was always unauthorized
* drfapikey only supports Django until 1.10 version
* https://florimondmanca.github.io/djangorestframework-api-key/
supports modern Python and Django versions
- remove useless BUILD_KEY_AUTH preference, it's True always
Change-Id: I5521b07532dba12abea52982d376eb83293f6a38
3 years ago
Victor Seva
eb4f76f554
TT#121955 build: detect release_uuid empty value
...
> [info ] request_started [django_structlog.middlewares.request] ip=192.168.208.21 request=POST /jenkinsbuildinfo/ request_id=e435d38f-f690-4ba6-8b58-01ef76d0d988 user_agent=python-requests/2.21.0 user_id=None
> {'request_id': 'e435d38f-f690-4ba6-8b58-01ef76d0d988', 'user_id': None, 'ip': '192.168.208.21', 'release_uuid': '$release_uuid', 'release': 'release-mr7.5-update', 'event': 'BuildRelease not found', 'logger': 'build.signals', 'level': 'error'}
Change-Id: I0aa2eb7690d52becbe4ae556e561f87017b50d16
3 years ago
Victor Seva
6f043a0b9f
TT#121955 migrate missing files to structlog
...
Just to keep consistency on project
Change-Id: I8e2cec10baa92d00915229bb118be585492ac598
3 years ago
Victor Seva
504110f9e5
TT#121955 test: override DEBUG value
...
Change-Id: Icfcbfc847feb1a694bb7c9537b628fe449cdb9c4
3 years ago
Victor Seva
d832e3233c
TT#121955 migrate to pathlib
...
Change-Id: Ie3dbd8503d6c61dda3d187de65a5694cbc4f957f
3 years ago
Victor Seva
a245cc8a8c
TT#121955 decouple tasks and signals from models
...
* migrate to structlog on all of them
Change-Id: I6f89a5880c5d517b2c5525503d88b5b6d815797a
3 years ago
Victor Seva
b4a4e72cc6
TT#121955 build: remove module models
...
Change-Id: I4bc608f5c84359c155895935a3b77c24ba0f44c0
3 years ago
Victor Seva
8da6c9cb48
TT#121955 define resources for django-import-export
...
https://django-import-export.readthedocs.io/en/latest/getting_started.html#creating-import-export-resource
* admin integration
https://django-import-export.readthedocs.io/en/latest/getting_started.html#admin-integration
Change-Id: I67da67943eea7b39fe63d7d8a910e2b889f92f6e
3 years ago
Victor Seva
5ca6d5ddb9
TT#121955 import conf from AppConfig.ready()
...
AppConf classes depend on being imported during startup of the Django process.
Change-Id: I16f6860a47467fd3ed138df46df81497ddf00f77
3 years ago
Victor Seva
1652418a6d
TT#121955 django.conf.urls.url() removed
...
https://docs.djangoproject.com/en/3.2/internals/deprecation/#deprecation-removed-in-4-0
Change-Id: I6515688706f50422eb7751d305a8ed87ca0394e8
3 years ago
Victor Seva
29e328b069
TT#121955 update Django 3.1
...
* models.JSONField
https://docs.djangoproject.com/en/3.1/releases/3.1/#jsonfield-for-all-supported-database-backends
Now returns a str() instead of a dict()
* no need to pin psycop2
https://docs.djangoproject.com/en/3.1/releases/3.1/#database-backend-api
"connection.timezone property is now 'UTC' by default, or the
TIME_ZONE when USE_TZ is True on databases that support time zones.
Previously, it was None on databases that support time zones."
* rework signal receivers
Change-Id: I4e1c6f780c416c7e2f2e1c7ba6154f25e4bd8c5a
3 years ago
Victor Seva
ffe2d6c8b9
TT#100201 build: support trunk with more than one distribution
...
* Makefile: add extra test summary
* migrate to structlog, this is an ongoing effort
* panel: remove any "trunk" build
Change-Id: I6f60541248f2970e0fe0784f2eb6eff5dec40721
5 years ago
Victor Seva
34221aee0a
TT#7211 add authentication on jenkins requests
...
* rename repoapi.utils.openurl to a less confusing name open_jenkins_url
Change-Id: I0d3fee994d0fb4af5a315b4c1d1a42dcf067504a
5 years ago