Commit Graph

96 Commits

Author SHA1 Message Date
Fabio Manganiello 1f1eadf962
[CI/CD] Added `-o nomixupload` option to s3fs.
continuous-integration/drone/push Build is failing Details
2023-10-19 20:57:25 +02:00
Fabio Manganiello 2197ce7c78
Revert "[CI/CD] Trying to prevent race conditions on S3 access from Drone CI automation" 2023-10-19 20:11:42 +02:00
Fabio Manganiello 111cb5e62a
[CI/CD] Trying to prevent race conditions on S3 access from Drone CI automation
continuous-integration/drone/push Build is failing Details
2023-10-19 20:06:51 +02:00
Fabio Manganiello ff02d2a3c8
[CI/CD] Trying to prevent race conditions on S3 access from Drone CI automation
continuous-integration/drone/push Build encountered an error Details
2023-10-19 20:05:51 +02:00
Fabio Manganiello 3e00a05301
[CI/CD] Restored `awscli` process for `update-debian-oldstable-packages`.
continuous-integration/drone/push Build is passing Details
The `s3fs` flow seems to have problems on the Debian oldstable image.
2023-10-14 15:35:11 +02:00
Fabio Manganiello d4c790925b
[CI/CD] Changed order of the S3 bucket mount step in deb builds.
continuous-integration/drone/push Build is failing Details
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
Fabio Manganiello 1649808efc
[CI/CD] Do all the apt repo operations on a temporary folder.
continuous-integration/drone/push Build is failing Details
`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
Fabio Manganiello 465ff87f15
[CI/CD] Replaced `awscli` with `s3fs`. 2023-10-14 15:16:40 +02:00
Fabio Manganiello 8ef67012ed [Drone CI] git push in the build-ui step needs a -f flag. 2023-10-12 00:57:31 +00:00
Fabio Manganiello fd7037d048
Added git checkout and rebase commands to sync-stable-branch step.
continuous-integration/drone/push Build is passing Details
2023-10-01 23:31:46 +02:00
Fabio Manganiello 98b51362e9
[#317] Added Drone step to sync the stable branch on tag.
continuous-integration/drone/push Build is passing Details
Closes: #317
2023-10-01 23:17:53 +02:00
Fabio Manganiello 1732bfa82c
Fixed _default_docstring regex. 2023-09-30 14:36:08 +02:00
Fabio Manganiello acb40bd5fd
The `test` step should also install all dependencies via apk add.
continuous-integration/drone/push Build is failing Details
2023-09-30 13:36:28 +02:00
Fabio Manganiello d030e2b8c7
Install all the deps via `apk add` on Alpine in the build-docs step. 2023-09-30 13:29:10 +02:00
Fabio Manganiello c3337ccc6c
[#311] Docs deps autogen sphinx plugin.
continuous-integration/drone/push Build is passing Details
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
Fabio Manganiello 27340f2889
Fixed a variable name in the Drone RPM step.
continuous-integration/drone/push Build is passing Details
2023-09-23 16:48:49 +02:00
Fabio Manganiello 33b26fa8dd
fuse doesn't like inter-device move operations.
continuous-integration/drone/push Build is failing Details
So the Drone pipeline has to resort to the cp+rm dance instead.
2023-09-23 16:42:15 +02:00
Fabio Manganiello bbd8e939e6
Fixed a multiline expression 2023-09-23 16:37:52 +02:00
Fabio Manganiello f6dea0b4d4
Added RPM update step to Drone CI pipeline.
continuous-integration/drone/push Build is passing Details
Closes: #316.
2023-09-23 16:21:00 +02:00
Fabio Manganiello 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
Fabio Manganiello 8925405788
Added `| head -1` to `git log` commands that fetch the current head.
continuous-integration/drone/push Build is passing Details
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
Fabio Manganiello 9926aefed0
Added curl dependency to the deb pkg build steps.
continuous-integration/drone/push Build is passing Details
2023-09-20 01:48:35 +02:00
Fabio Manganiello 3931a3cbf2
Added main deb release logic.
continuous-integration/drone/push Build is passing Details
2023-09-20 01:42:25 +02:00
Fabio Manganiello af4a586014
Added Release files signing logic to update-apt-repo.
continuous-integration/drone/push Build is passing Details
2023-09-20 00:03:49 +02:00
Fabio Manganiello e3fb0eeb11
Fixed typo
continuous-integration/drone/push Build is passing Details
2023-09-19 14:34:02 +02:00
Fabio Manganiello f6517059f6
Generate hashes for all the architectures in the Release files.
continuous-integration/drone/push Build is passing Details
2023-09-19 14:29:34 +02:00
Fabio Manganiello eb398f24d7
Removed Version reference from Release files.
continuous-integration/drone/push Build is passing Details
2023-09-19 14:22:36 +02:00
Fabio Manganiello 35c2b69ece
Added all supported architectures to generated Release files.
continuous-integration/drone/push Build is passing Details
2023-09-19 14:13:31 +02:00
Fabio Manganiello 87cf90eb6b
Changed format of the Debian git versions.
continuous-integration/drone/push Build is passing Details
Comply with <maj>.<min>.<patch>-<rel> versioning convention.
2023-09-19 13:21:28 +02:00
Fabio Manganiello 9150b2cae5
Refactored logic to rewrite the Release file.
continuous-integration/drone/push Build is passing Details
2023-09-19 13:01:06 +02:00
Fabio Manganiello e0da41e6ff
Fixed upload path for the deb packages.
continuous-integration/drone/push Build is passing Details
2023-09-19 11:52:47 +02:00
Fabio Manganiello 945fa9bd74
Added logic to regenerate the Packages and Release files from CI/CD.
continuous-integration/drone/push Build is passing Details
2023-09-19 11:46:04 +02:00
Fabio Manganiello 76d4dcfcf8
Replaced occurrence of `let` with arithmetic expansion.
continuous-integration/drone/push Build is passing Details
drone-ci uses /bin/sh instead of bash, so let is not available.
2023-09-19 01:23:24 +02:00
Fabio Manganiello 92d7ce8305
(Possible?) fix for a weird bash syntax error.
continuous-integration/drone/push Build is failing Details
2023-09-19 01:16:35 +02:00
Fabio Manganiello 739777271d
(Forgot an apt update)
continuous-integration/drone/push Build is failing Details
2023-09-19 01:05:38 +02:00
Fabio Manganiello 2b9d8f1a55
Added AWS_DEFAULT_REGION variable
continuous-integration/drone/push Build is failing Details
2023-09-19 01:02:09 +02:00
Fabio Manganiello b566d87dac
Added retention logic to the packages stored on the apt repo.
continuous-integration/drone/push Build is failing Details
2023-09-19 00:36:16 +02:00
Fabio Manganiello 6af02804d5
Parametrized the Debian build steps. 2023-09-18 21:31:42 +02:00
Fabio Manganiello 1f2e5b1e7a
`update-debian-*-packages` steps can now go in parallel.
continuous-integration/drone/push Build is passing Details
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
Fabio Manganiello 9aad1a2c58
S3 directory structure now compatible with that of an apt repo.
continuous-integration/drone/push Build is passing Details
2023-09-18 20:59:48 +02:00
Fabio Manganiello 2676d7babe A more resilient way of renaming site-packages to dist-packages.
continuous-integration/drone/push Build is passing Details
2023-09-18 15:49:11 +02:00
Fabio Manganiello d969119f60 Fixed sed expression
continuous-integration/drone/push Build is failing Details
2023-09-18 15:39:05 +02:00
Fabio Manganiello 7a85f13f23 Workaround to ensure that the pkg is installed under dist-packages.
continuous-integration/drone/push Build is failing Details
2023-09-18 15:31:40 +02:00
Fabio Manganiello a5a780060b Install everything under <prefix>/usr when building the .deb pkg.
continuous-integration/drone/push Build is passing Details
2023-09-18 15:23:53 +02:00
Fabio Manganiello b8ba9c36b6 Do a barrel roll to make sure that the installed package sticks to Debian's naming conventions.
continuous-integration/drone/push Build is failing Details
2023-09-18 15:08:03 +02:00
Fabio Manganiello 67d45997ed Fixed Python bin path name for Debian builds.
continuous-integration/drone/push Build is passing Details
2023-09-18 14:53:21 +02:00
Fabio Manganiello 4bb3bcff8b (We actually do need git here)
continuous-integration/drone/push Build is failing Details
2023-09-18 14:46:30 +02:00
Fabio Manganiello 9576141a3f We don't need git commands when building .deb pkgs.
continuous-integration/drone/push Build is failing Details
2023-09-18 14:43:59 +02:00
Fabio Manganiello 55d4523ea3 The latest version of pip wants --break-system-packages in Docker.
continuous-integration/drone/push Build is failing Details
2023-09-18 14:38:04 +02:00
Fabio Manganiello e16cfdfb44 Use vanilla Debian images to build .deb.
continuous-integration/drone/push Build is failing Details
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