dresden-elektronik / deconz-rest-plugin

deCONZ REST-API plugin to control ZigBee devices
BSD 3-Clause "New" or "Revised" License
1.9k stars 503 forks source link

Add workflow for DDF Bundles #7743

Closed Zehir closed 6 months ago

Zehir commented 6 months ago

Why ?

For version 2.27.0 introduce the concept of bundles. You can find the description of a bundle here : #7750 With that we introduce a bundle store to be able to update the bundles in between deconz release. It's also add a historical list of bundles.

UUID is a new root property on the DDF. It's only used by the DDF store, it's used to keep track the bundles updates.

To avoid to many manual operation I made a new github action.

Before the action was just validating and now it's more than that.

Features

Modified bundle list of the PR

When a new PR is made the github action will post a message on the PR. The message contain :

The message is updated on each commit after the intial PR.

For existing PR any commit will trigger the workflow and add the message.

image

Auto commit UUID

When a pull request is merged, any DDF that does not have a UUID will be updated to include a UUID through a new commit.

Create bundles and upload them to the store

When a pull request is merged any new DDF will be bundled and uploaded on the store. They will be uploaded with the beta signature. A new message will be posted on the PR with the link of the bundles on the store.

image

Currently the UI on the store side is still WIP

Other notes

There is also some unused files, for the generic it's probably normal

  Warning: Unused generic devices/generic/subdevices/door_lock_controller.json
  Warning: Unused generic devices/generic/subdevices/zgp_switch.json
  Warning: Unused generic devices/generic/items/attr_appversion_item.json
  Warning: Unused generic devices/generic/items/attr_poweronct_item.json
  Warning: Unused generic devices/generic/items/attr_poweronlevel_item.json
  Warning: Unused generic devices/generic/items/cap_sleeper_item.json
  Warning: Unused generic devices/generic/items/config_colorcapabilities_item.json
  Warning: Unused generic devices/generic/items/config_configured_item.json
  Warning: Unused generic devices/generic/items/config_controlsequence_item.json
  Warning: Unused generic devices/generic/items/config_ctmax_item.json
  Warning: Unused generic devices/generic/items/config_ctmin_item.json
  Warning: Unused generic devices/generic/items/config_lastchange_amount_item.json
  Warning: Unused generic devices/generic/items/config_lastchange_time_item.json
  Warning: Unused generic devices/generic/items/config_lastchange_source_item.json
  Warning: Unused generic devices/generic/items/config_melody_item.json
  Warning: Unused generic devices/generic/items/config_volume_item.json
  Warning: Unused generic devices/generic/items/state_current_p1_item.json
  Warning: Unused generic devices/generic/items/state_current_p2_item.json
  Warning: Unused generic devices/generic/items/state_current_p3_item.json
  Warning: Unused generic devices/generic/items/state_heating_item.json
  Warning: Unused generic devices/generic/items/state_lastcheckin_item.json
  Warning: Unused generic devices/generic/items/state_production_item.json

But there is also some in the devices directory;

  Warning: Unused misc devices/ikea/ikea_known_issues_radio_silence.md
  Warning: Unused misc devices/xiaomi/xiaomi_lumi.curtain.agl001.js
  Warning: Unused misc devices/xiaomi/xiaomi_rtczcgq11lm_presenceevent.js
  Warning: Unused misc devices/generic/touchlink_commissioning_cluster/1000_get_group_identifiers.js
Zehir commented 6 months ago

It's also need the PR #7742 first