Commit Graph

127 Commits

Author SHA1 Message Date
Fabio Manganiello b097a4c1f4
Remove also the dist directory in the build-ui step before running npm run build
continuous-integration/drone/push Build is passing Details
2024-01-08 22:56:05 +01:00
Fabio Manganiello 1ff8cfd240
[CI/CD] A more robust logic to regenerate `components.json.gz`.
continuous-integration/drone/push Build is passing Details
We shouldn't rely on `git diff`. Even when the underlying source code
hasn't changed, and the cache is dumped with `sort_keys=True`, some of
the generated snippets of docstrings may change, leading the CI/CD
pipeline to get stuck in a push loop.

We should instead look for changes to the plugins, backends, events and
schemas folders before and after the CI/CD trigger to infer if we need
to regenerate the file.
2024-01-06 23:45:51 +01:00
Fabio Manganiello bb6f859262
Fix: typo in git commit argument.
continuous-integration/drone/push Build is passing Details
2024-01-06 22:43:38 +01:00
Fabio Manganiello f85fc02cce
Fix: git should be installed earlier in the update-components-cache step. 2024-01-06 22:41:25 +01:00
Fabio Manganiello 6e1ab92298
New components cache management.
continuous-integration/drone/push Build is passing Details
The cache is no longer generated at runtime when the application runs -
which may take quite a while, especially on fresh installations.

A `components.json.gz` file is instead generated by the CI/CD process on
every commit to the main branch, and distributed with the package.

The application will read this file when the `inspect` plugin is first
initialized.

This also means that we can no longer cache the `install_cmds`, as they
change depending on the target OS. A new
`application.get_install_commands` action has now been made available to
the UI, so it can get the correct installation commands at runtime.
2024-01-06 22:21:59 +01:00
Fabio Manganiello e3ea315276
[CI/CD] Create a .skipci file on `build-ui`.
If new commits are pushed by the step then another pipeline will be
triggered. We shouldn't proceed with the following steps.
2023-12-30 00:04:35 +01:00
Fabio Manganiello 6673bb4c19
[CI/CD] Always copy new apt repo root.
continuous-integration/drone/push Build is passing Details
2023-12-26 05:53:54 +01:00
Fabio Manganiello 581fe6101f
[CI/CD] Debug pipeline by printing content of Packages file.
continuous-integration/drone/push Build is passing Details
2023-12-26 05:45:34 +01:00
Fabio Manganiello 4b4a8c7aaa
[CI/CD] Another fix.
continuous-integration/drone/push Build is passing Details
2023-12-26 05:40:56 +01:00
Fabio Manganiello a50ea8dd8e
[CI/CD] Change order of deb cleanup commands.
continuous-integration/drone/push Build was killed Details
2023-12-26 05:39:25 +01:00
Fabio Manganiello 15c1ac3823
[CI/CD] Clean up any existing *.deb packages before uploading new one.
continuous-integration/drone/push Build is passing Details
2023-12-26 05:36:29 +01:00
Fabio Manganiello f3f1e96ad9
[CI/CD] Attempt to fix empty `branch_dir`.
continuous-integration/drone/push Build is passing Details
2023-12-26 05:21:46 +01:00
Fabio Manganiello 89757d4366
[CI/CD] A more robust way of detecting the presence of a main version package.
continuous-integration/drone/push Build is passing Details
2023-12-26 05:08:21 +01:00
Fabio Manganiello 995077eea7
[CI/CD] Fixed off-by-one version number issue. 2023-12-26 04:37:05 +01:00
Fabio Manganiello e8a337752a
[CI/CD] Print names of generated deb packages.
continuous-integration/drone/push Build is passing Details
2023-12-25 15:14:18 +01:00
Fabio Manganiello 2e1ed9b176
pip on Alpine now also requires --break-system-packages
continuous-integration/drone/push Build was killed Details
2023-12-18 13:50:02 +01:00
Fabio Manganiello 6b68fa607b
(Possible) fix for multi-line breaks in apt/index.txt.
continuous-integration/drone/push Build is passing Details
2023-11-18 15:37:17 +01:00
Fabio Manganiello c055edab8f
Moved all list files generation logic within the update-apt-repo step.
continuous-integration/drone/push Build is passing Details
2023-11-18 15:33:22 +01:00
Fabio Manganiello e5ca96e004
Fixed Drone CI command indentation.
continuous-integration/drone/push Build is passing Details
2023-11-18 15:27:34 +01:00
Fabio Manganiello dcf9561ad1
[CI/CD] Regenerate the Debian repo list files when the repo is rebuilt. 2023-11-18 14:16:49 +01:00
Fabio Manganiello acf0e0f34f [CI/CD] Moved the chmod commands outside of the if. 2023-10-23 19:46:07 +00:00
Fabio Manganiello f9ce5e3cd2 [CI/CD] chmod should always be the final step in `update-apt-repo`. 2023-10-23 19:38:51 +00:00
Fabio Manganiello 532427eeb5 [CI/CD] The chmod section should be on the `update-apt-repo` step. 2023-10-23 19:30:26 +00:00
Fabio Manganiello 4afd1b68d0 [Fix] s/chown/chmod/g typo fix 2023-10-23 19:26:21 +00:00
Fabio Manganiello 8c0c551aa5 [CI/CD] Ensure that public repo dirs are always readable by everyone. 2023-10-23 19:23:23 +00:00
Fabio Manganiello ea88ab7f6c
[Docs] Clone and build wiki pages on docs.platypush.tech.
continuous-integration/drone/push Build is passing Details
2023-10-21 22:54:49 +02:00
Fabio Manganiello 0eae6fd48d
Misc dependencies and mock fixes.
continuous-integration/drone/push Build is passing Details
- `iputils` should be an explicit system dependency for `ping`.
  Some minimal systems (like some Docker images) may not have the `ping`
  command installed out of the box.

- `hid` and `marshmallow_dataclass` should be among the auto-mocked
  modules.
2023-10-20 01:02:35 +02:00
Fabio Manganiello 1e2ffc121f
[CI/CD] Added `yum install platypush-git` line to `index.txt`.
continuous-integration/drone/push Build is passing Details
2023-10-19 23:56:48 +02:00
Fabio Manganiello a915dd1e1f
[CI/CD] Regenerate the full apt and rpm repos in Drone pipeline.
continuous-integration/drone/push Build is passing Details
This also includes:

- index.txt
- pubkey.txt
- RPM repo definition
2023-10-19 23:46:36 +02:00
Fabio Manganiello 5d3c7679b6
[Fix] Added mistakenly removed `PKG_NAME` variable.
continuous-integration/drone/push Build is passing Details
2023-10-19 21:54:03 +02:00
Fabio Manganiello 6fb432d7bb
[CI/CD] S3 bucket replaced with a local folder.
continuous-integration/drone/push Build is failing Details
Managing concurrent copies over s3fs through CI/CD is a hassle.
Input/output errors abound and the steps are also slow.
2023-10-19 21:48:59 +02:00
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