Commit graph

93 commits

Author SHA1 Message Date
ff02d2a3c8
[CI/CD] Trying to prevent race conditions on S3 access from Drone CI automation 2023-10-19 20:05:51 +02:00
3e00a05301
[CI/CD] Restored awscli process for update-debian-oldstable-packages.
The `s3fs` flow seems to have problems on the Debian oldstable image.
2023-10-14 15:35:11 +02:00
d4c790925b
[CI/CD] Changed order of the S3 bucket mount step in deb builds.
It seems that s3fs may fail if two clients try to mount the same
resource with the same token at the same time.
2023-10-14 15:26:07 +02:00
1649808efc
[CI/CD] Do all the apt repo operations on a temporary folder.
`update-apt-repo` should first copy the existing repo root on the S3
bucket to a local temporary directory, so we don't do expensive (and
very slow) file operations on the s3fs filesystem.

After everything is done, we should do a current->old, tmp->current, rm old
dance to update the repo on S3.
2023-10-14 15:16:41 +02:00
465ff87f15
[CI/CD] Replaced awscli with s3fs. 2023-10-14 15:16:40 +02:00
8ef67012ed [Drone CI] git push in the build-ui step needs a -f flag. 2023-10-12 00:57:31 +00:00
fd7037d048
Added git checkout and rebase commands to sync-stable-branch step. 2023-10-01 23:31:46 +02:00
98b51362e9
[#317] Added Drone step to sync the stable branch on tag.
Closes: #317
2023-10-01 23:17:53 +02:00
1732bfa82c
Fixed _default_docstring regex. 2023-09-30 14:36:08 +02:00
acb40bd5fd
The test step should also install all dependencies via apk add. 2023-09-30 13:36:28 +02:00
d030e2b8c7
Install all the deps via apk add on Alpine in the build-docs step. 2023-09-30 13:29:10 +02:00
c3337ccc6c
[#311] Docs deps autogen sphinx plugin.
Added an `add_dependencies` plugin to the Sphinx build process that
parses the manifest files of the scanned backends and plugins and
automatically generates the documentation for the required dependencies
and triggered events.

This means that those dependencies are no longer required to be listed
in the docstring of the class itself.

Also in this commit:

- Black/LINT for some integrations that hadn't been touched in a long
  time.

- Deleted some leftovers from previous refactors (deprecated
  `backend.mqtt`, `backend.zwave.mqtt`, `backend.http.request.rss`).

- Deleted deprecated `inotify` backend - replaced by `file.monitor` (see
  #289).
2023-09-24 17:00:08 +02:00
27340f2889
Fixed a variable name in the Drone RPM step. 2023-09-23 16:48:49 +02:00
33b26fa8dd
fuse doesn't like inter-device move operations.
So the Drone pipeline has to resort to the cp+rm dance instead.
2023-09-23 16:42:15 +02:00
bbd8e939e6
Fixed a multiline expression 2023-09-23 16:37:52 +02:00
f6dea0b4d4
Added RPM update step to Drone CI pipeline.
Closes: #316.
2023-09-23 16:21:00 +02:00
2b981f6b68
Added python-croniter dependency to Fedora.
Plus, some clean up of the variables on .drone.yaml.
2023-09-23 16:20:28 +02:00
8925405788
Added | head -1 to git log commands that fetch the current head.
The reason is that `git log HEAD...HEAD~1` will return two or more
commits if we're dealing with merge commits, so we must be explicit that
we only need the latest one.
2023-09-20 23:42:34 +02:00
9926aefed0
Added curl dependency to the deb pkg build steps. 2023-09-20 01:48:35 +02:00
3931a3cbf2
Added main deb release logic. 2023-09-20 01:42:25 +02:00
af4a586014
Added Release files signing logic to update-apt-repo. 2023-09-20 00:03:49 +02:00
e3fb0eeb11
Fixed typo 2023-09-19 14:34:02 +02:00
f6517059f6
Generate hashes for all the architectures in the Release files. 2023-09-19 14:29:34 +02:00
eb398f24d7
Removed Version reference from Release files. 2023-09-19 14:22:36 +02:00
35c2b69ece
Added all supported architectures to generated Release files. 2023-09-19 14:13:31 +02:00
87cf90eb6b
Changed format of the Debian git versions.
Comply with <maj>.<min>.<patch>-<rel> versioning convention.
2023-09-19 13:21:28 +02:00
9150b2cae5
Refactored logic to rewrite the Release file. 2023-09-19 13:01:06 +02:00
e0da41e6ff
Fixed upload path for the deb packages. 2023-09-19 11:52:47 +02:00
945fa9bd74
Added logic to regenerate the Packages and Release files from CI/CD. 2023-09-19 11:46:04 +02:00
76d4dcfcf8
Replaced occurrence of let with arithmetic expansion.
drone-ci uses /bin/sh instead of bash, so let is not available.
2023-09-19 01:23:24 +02:00
92d7ce8305
(Possible?) fix for a weird bash syntax error. 2023-09-19 01:16:35 +02:00
739777271d
(Forgot an apt update) 2023-09-19 01:05:38 +02:00
2b9d8f1a55
Added AWS_DEFAULT_REGION variable 2023-09-19 01:02:09 +02:00
b566d87dac
Added retention logic to the packages stored on the apt repo. 2023-09-19 00:36:16 +02:00
6af02804d5
Parametrized the Debian build steps. 2023-09-18 21:31:42 +02:00
1f2e5b1e7a
update-debian-*-packages steps can now go in parallel.
We should copy the source directory at the beginning of each step into a
temporary directory, so the build steps can go in parallel without
conflicts while accessing the same files.
2023-09-18 21:15:48 +02:00
9aad1a2c58
S3 directory structure now compatible with that of an apt repo. 2023-09-18 20:59:48 +02:00
2676d7babe A more resilient way of renaming site-packages to dist-packages. 2023-09-18 15:49:11 +02:00
d969119f60 Fixed sed expression 2023-09-18 15:39:05 +02:00
7a85f13f23 Workaround to ensure that the pkg is installed under dist-packages. 2023-09-18 15:31:40 +02:00
a5a780060b Install everything under <prefix>/usr when building the .deb pkg. 2023-09-18 15:23:53 +02:00
b8ba9c36b6 Do a barrel roll to make sure that the installed package sticks to Debian's naming conventions. 2023-09-18 15:08:03 +02:00
67d45997ed Fixed Python bin path name for Debian builds. 2023-09-18 14:53:21 +02:00
4bb3bcff8b (We actually do need git here) 2023-09-18 14:46:30 +02:00
9576141a3f We don't need git commands when building .deb pkgs. 2023-09-18 14:43:59 +02:00
55d4523ea3 The latest version of pip wants --break-system-packages in Docker. 2023-09-18 14:38:04 +02:00
e16cfdfb44 Use vanilla Debian images to build .deb.
Instead of `python:<python_ver>-<debian_ver>` images.

The official Python Debian images install the interpreter under
/usr/local/bin/python, while standard Debian distros do under
/usr/bin/python3, leading to package incompatibility.

Also, using the vanilla Debian images makes sure that we are always
using the version of Python installed on that Debian version.
2023-09-18 14:34:21 +02:00
3acbde38c1 Run the Debian package updates sequentially to prevent builds to step on one another's toes 2023-09-18 14:15:29 +02:00
10bf617261 main/ should have a trailing slash. 2023-09-18 13:40:17 +02:00
ed9548a476 Release .deb packages both for stable and oldstable. 2023-09-18 13:36:59 +02:00