Skip to content

Commit

Permalink
4.55.0 (2024-01-06)
Browse files Browse the repository at this point in the history
### UI Changes

- Add plugin log download button
- Improve plugin card hyperlinks (#1918) (@jsiegenthaler)
- Download logs option for when a plugin install/update/uninstall fails
- revise system information icons (os/node)
- accessory title fix (lights + windows) (#1933) (@mkz212)
- improve spacing in plugin card
- more items in homebridge settings
- confirm restart after updating Homebridge instead of automatically restarting
- improve child bridge sing/plu in dropdown
- move backup/restore + users to hb settings
- move hb/ui settings to main menu
- create standard settings page + link at top
- small changes to plugin card (based on feedback)
- fix overflow in markdown changelog
- plugin card updates
- added credits link in status footer and modal for credits
- added more `aria-label` attributes to buttons to improve accessibility
- add link to homebridge wiki in logs on plugin action error
- allow fan/fanv2 rotation speed to be a different unit than percentage
- improve plugin sorting, with actionable plugins at the top
- fix footer paddings for mobile and desktop (#1956) (@mkz212)
- no need to restart if updating disabled plugin
- standardise update modal header

### Translation Changes

- updates to pl.json language file (#1929) (@mkz212)
- updates to de.json language file (@Staubgeborener)
- updates to fr.json language file (@SonnyT72)
- updates to de.json language file (#1953) (@Staubgeborener)
- updates to pl.json language file (#1954) (@mkz212)

### Other Changes

- add `passport` as dependency to BE
- revert ngx-monaco-editor dependency update
- ui: update to angular v15
- improve github actions
- Fix for backup service including npm's cache (#1949) (@sapireli)
- updated dependencies
- ignore `.venv` in hb backup files
- updated Discord Webhooks so notifications are seperated for `release` and `pre-release`
- update maximum file upload size to 25mb
  • Loading branch information
donavanbecker committed Jan 7, 2024
2 parents 99c9ae7 + 9dbbf83 commit fff0d5d
Show file tree
Hide file tree
Showing 273 changed files with 5,184 additions and 4,313 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ blank_issues_enabled: false
contact_links:
- name: Homebridge Discord Community
url: https://discord.gg/C87Pvq3
about: Join the Official Homebridge Discord community and ask in the ui channel.
about: Join the Official Homebridge Discord community and ask in the ui channel.
122 changes: 98 additions & 24 deletions .github/workflows/Attach Artifacts.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: Attach Artifacts from Node Release or Manually ( If the automation fails )
run-name: From Node Release or Manually Attach Artifacts against ${{ github.event.inputs.tag }}
name: Attach Artifacts
run-name: Attach Artifacts

on:
repository_dispatch:
types: [attach-artifacts]
release:
types: [prereleased]
workflow_dispatch:
inputs:
tag:
Expand All @@ -17,47 +17,121 @@ jobs:

steps:
- name: Setup node
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: 20.x

- name: Get previous tag
if: github.event.inputs.tag == ''
id: previoustag
uses: 'WyriHaximus/github-action-get-previous-tag@v1'

# workflow_dispatch
# Sanity check to ensure that release tags don't start with a 'v' version prefix but adhere to the X.Y.Z format
- name: Check for Tag name Format
- name: Check for Tag name Format ${{ github.event.inputs.tag }}
# https://github.com/orgs/community/discussions/25017
if: startsWith(github.event.inputs.tag, 'v')
if: startsWith(github.event.inputs.tag, 'v') && github.event_name == 'workflow_dispatch'
run: |
echo "Release Tag name must not start with 'v', this was supplied ${{github.event.inputs.tag}}"
echo "Release Tag name must not start with 'v', this was supplied ${{ github.event.inputs.tag }}"
exit 1
- name: Install package
- name: Install package ${{ github.event.inputs.tag }}
if: github.event_name == 'workflow_dispatch'
run: |
export npm_config_prefix=$(pwd)/package
npm install -g homebridge-config-ui-x@${{ needs.analyze-tags.outputs.previous-tag || github.event.inputs.tag }}
npm install -g homebridge-config-ui-x@${{ github.event.inputs.tag }}
- name: Remove invalid node-pty node-gyp run
- name: Remove invalid node-pty node-gyp run ${{ github.event.inputs.tag }}
if: github.event_name == 'workflow_dispatch'
run: |
rm -rf $(pwd)/package/lib/node_modules/homebridge-config-ui-x/node_modules/@homebridge/node-pty-prebuilt-multiarch/build
- name: Create Bundle
- name: Create Bundle ${{ github.event.inputs.tag }}
if: github.event_name == 'workflow_dispatch'
run: |
tar -C $(pwd)/package --owner=0 --group=0 --format=posix -czvf homebridge-config-ui-x-${{ needs.analyze-tags.outputs.previous-tag || github.event.inputs.tag }}.tar.gz .
shasum -a 256 homebridge-config-ui-x-${{ needs.analyze-tags.outputs.previous-tag || github.event.inputs.tag }}.tar.gz > SHASUMS256.txt
tar -C $(pwd)/package --owner=0 --group=0 --format=posix -czvf homebridge-config-ui-x-${{ github.event.inputs.tag }}.tar.gz .
shasum -a 256 homebridge-config-ui-x-${{ github.event.inputs.tag }}.tar.gz > SHASUMS256.txt
- name: Check Bundle
- name: Check Bundle ${{ github.event.inputs.tag }}
if: github.event_name == 'workflow_dispatch'
run: |
if [ $(stat -c%s "homebridge-config-ui-x-${{ needs.analyze-tags.outputs.previous-tag || github.event.inputs.tag }}.tar.gz") -lt 10000000 ]; then
if [ $(stat -c%s "homebridge-config-ui-x-${{ github.event.inputs.tag }}.tar.gz") -lt 10000000 ]; then
echo "Bundle is under 10MB, stopping"
exit 1
fi
- name: Upload tar.gz Bundle to GitHub Artifacts ${{ github.event.inputs.tag }}
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: 'homebridge-config-ui-x-${{ github.event.inputs.tag }}(github.event.inputs.tag).tar.gz'
path: |
./homebridge-config-ui-x-${{ github.event.inputs.tag }}.tar.gz

- name: Upload SHASUMS256.txt to GitHub Artifacts ${{ github.event.inputs.tag }}
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: 'SHASUMS256(github.event.inputs.tag).txt'
path: |
./SHASUMS256.txt
- name: Attach Bundle
uses: AButler/upload-release-assets@v2.0
- name: Attach Bundle ${{ github.event.inputs.tag }}
if: github.event_name == 'workflow_dispatch'
uses: AButler/upload-release-assets@v3.0
with:
files: 'homebridge-config-ui-x-${{ needs.analyze-tags.outputs.previous-tag || github.event.inputs.tag }}.tar.gz;SHASUMS256.txt'
files: 'homebridge-config-ui-x-${{ github.event.inputs.tag }}.tar.gz;SHASUMS256.txt'
repo-token: ${{ secrets.GITHUB_TOKEN }}
release-tag: ${{ github.event.inputs.tag }}

# github.ref
- name: Get version from ${{ github.event_name }} tag
if: github.event_name == 'release'
id: get_version
uses: nowsprinting/check-version-format-action@v3

- name: Install package ${{ steps.get_version.outputs.full }}
if: github.event_name == 'release'
run: |
export npm_config_prefix=$(pwd)/package
npm install -g homebridge-config-ui-x@${{ steps.get_version.outputs.full }}
- name: Remove invalid node-pty node-gyp run ${{ steps.get_version.outputs.full }}
if: github.event_name == 'release'
run: |
rm -rf $(pwd)/package/lib/node_modules/homebridge-config-ui-x/node_modules/@homebridge/node-pty-prebuilt-multiarch/build
- name: Create Bundle ${{ steps.get_version.outputs.full }}
if: github.event_name == 'release'
run: |
tar -C $(pwd)/package --owner=0 --group=0 --format=posix -czvf homebridge-config-ui-x-${{ steps.get_version.outputs.full }}.tar.gz .
shasum -a 256 homebridge-config-ui-x-${{ steps.get_version.outputs.full }}.tar.gz > SHASUMS256.txt
- name: Check Bundle ${{ steps.get_version.outputs.full }}
if: github.event_name == 'release'
run: |
if [ $(stat -c%s "homebridge-config-ui-x-${{ steps.get_version.outputs.full }}.tar.gz") -lt 10000000 ]; then
echo "Bundle is under 10MB, stopping"
exit 1
fi
- name: Upload tar.gz Bundle to GitHub Artifacts ${{ steps.get_version.outputs.full }}
if: github.event_name == 'release'
uses: actions/upload-artifact@v4
with:
name: 'homebridge-config-ui-x-${{ steps.get_version.outputs.full }}.tar.gz'
path: |
./homebridge-config-ui-x-${{ steps.get_version.outputs.full }}.tar.gz

- name: Upload SHASUMS256.txt to GitHub Artifacts ${{ steps.get_version.outputs.full }}
if: github.event_name == 'release'
uses: actions/upload-artifact@v4
with:
name: 'SHASUMS256.txt'
path: |
./SHASUMS256.txt
- name: Attach Bundle ${{ steps.get_version.outputs.full }}
if: github.event_name == 'release'
uses: AButler/upload-release-assets@v3.0
with:
files: 'homebridge-config-ui-x-${{ steps.get_version.outputs.full }}.tar.gz;SHASUMS256.txt'
repo-token: ${{ secrets.GITHUB_TOKEN }}
release-tag: ${{ steps.get_version.outputs.full }}
3 changes: 0 additions & 3 deletions .github/workflows/alpha-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,8 @@ on:
workflow_dispatch:

jobs:

publish:

if: ${{ github.repository == 'homebridge/homebridge-config-ui-x' }}

uses: homebridge/.github/.github/workflows/npm-publish.yml@latest
with:
tag: 'alpha'
Expand Down
17 changes: 0 additions & 17 deletions .github/workflows/beta-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,8 @@ on:
workflow_dispatch:

jobs:
build_and_test:
uses: homebridge/.github/.github/workflows/nodejs-build-and-test.yml@latest
with:
enable_coverage: true
install_cmd: npm ci && cd ui && npm ci
secrets:
token: ${{ secrets.GITHUB_TOKEN }}

lint:
needs: build_and_test
uses: homebridge/.github/.github/workflows/eslint.yml@latest
with:
install_cmd: npm ci && cd ui && npm ci

publish:
needs: lint

if: ${{ github.repository == 'homebridge/homebridge-config-ui-x' }}

uses: homebridge/.github/.github/workflows/npm-publish.yml@latest
with:
tag: 'beta'
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ name: Node Build

on:
push:
branches: [latest]
branches: [latest, beta-*.*.*, beta, alpha-*.*.*, alpha]
pull_request:
branches: [latest, beta-*.*.*, beta]
types: [review_requested, ready_for_review]
workflow_dispatch:

jobs:
Expand Down Expand Up @@ -41,8 +43,8 @@ jobs:
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches: [ latest, beta* ]
pull_request:
branches: [ latest, beta* ]
types: [review_requested, ready_for_review]
schedule:
- cron: '17 9 * * 2'

Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/discord-webhooks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This is a basic workflow to help you get started with Actions

name: Discord Webhooks

# Controls when the workflow will run
on:
release:
types: [released, prereleased]

jobs:
github-releases-to-discord:
uses: homebridge/.github/.github/workflows/discord-webhooks.yml@latest
with:
footer_title: "Homebridge UI"
secrets:
DISCORD_WEBHOOK_URL_LATEST: ${{ secrets.DISCORD_WEBHOOK_URL_LATEST }}
DISCORD_WEBHOOK_URL_BETA: ${{ secrets.DISCORD_WEBHOOK_URL_BETA }}
2 changes: 1 addition & 1 deletion .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Labeler

on:
pull_request: # required for auto labeler
pull_request_target: # required for auto labeler
types: [opened, reopened, synchronize]
workflow_dispatch:

Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ on:
push:
branches: [latest]
pull_request: # required for autolabeler
types: [opened, reopened, synchronize]
branches: [latest]
types: [opened, reopened, synchronize, ready_for_review, review_requested]
workflow_dispatch:

jobs:
Expand Down
64 changes: 44 additions & 20 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,43 @@
name: Node Release
run-name: Production Release ${{ github.event.release.tag_name }}
run-name: Production Release

on:
# Removed publish on push, and forced manual release from github
# push:
# branches: [latest]
# tags:
# - '*.*.*'
workflow_dispatch:
release:
types: [released]

jobs:
tag:
name: Verify Release Tag
runs-on: ubuntu-latest
steps:
- name: Get Release Tag
id: get_version
uses: jannemattila/get-version-from-tag@v1
- name: Tag Info
run: |
echo "Release Tag: ${{github.ref}}"
echo "Latest Tag: ${{ steps.get_version.outputs.version }}"
- name: Tag Info Matches
if: endsWith(github.ref, steps.get_version.outputs.version )
run: |
echo Latest Tag matches Release tag
- name: Tag Info Doesn't Match
if: ${{ !endsWith(github.ref, steps.get_version.outputs.version ) }}
run: |
echo Latest Tag does not matches Release tag
exit 1
build_and_test:
needs: tag
name: Build and Test
if: ${{ github.repository == 'homebridge/homebridge-config-ui-x' }}
uses: homebridge/.github/.github/workflows/nodejs-build-and-test.yml@latest
with:
enable_coverage: true
install_cmd: npm ci && cd ui && npm ci
secrets:
token: ${{ secrets.GITHUB_TOKEN }}

publish:
needs: build_and_test

if: ${{ github.repository == 'homebridge/homebridge-config-ui-x' }}

uses: homebridge/.github/.github/workflows/npm-publish.yml@latest
Expand All @@ -30,45 +47,52 @@ jobs:
npm_auth_token: ${{ secrets.npm_token }}
build:
needs: publish
if: ${{ github.repository == 'homebridge/homebridge-config-ui-x' }}
name: Attach Artifact
runs-on: ubuntu-latest

steps:
- name: Setup node
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: 20.x

# Sanity check to ensure that release tags don't start with a 'v' version prefix but adhere to the X.Y.Z format
- name: Tag
id: tag
uses: JinoArch/get-latest-tag@latest

# Sanity check to ensure that release tags don't start with a 'v' version prefix but adhere to the X.Y.Z format
- name: Check for Tag name Format
# https://github.com/orgs/community/discussions/25017
if: startsWith(github.event.release.tag_name, 'v')
if: startsWith(steps.tag.outputs.latestTag, 'v')
run: |
echo "Release Tag name must not start with 'v', this was supplied ${{github.event.release.tag_name}}"
echo "Release Tag name must not start with 'v', this was supplied ${{steps.tag.outputs.latestTag}}"
exit 1
- name: Install package
run: |
export npm_config_prefix=$(pwd)/package
npm install -g homebridge-config-ui-x@${{ github.event.release.tag_name }}
npm install -g homebridge-config-ui-x@${{ steps.tag.outputs.latestTag }}
- name: Remove invalid node-pty node-gyp run
run: |
rm -rf $(pwd)/package/lib/node_modules/homebridge-config-ui-x/node_modules/@homebridge/node-pty-prebuilt-multiarch/build
- name: Create Bundle
run: |
tar -C $(pwd)/package --owner=0 --group=0 --format=posix -czvf homebridge-config-ui-x-${{ github.event.release.tag_name }}.tar.gz .
shasum -a 256 homebridge-config-ui-x-${{ github.event.release.tag_name }}.tar.gz > SHASUMS256.txt
tar -C $(pwd)/package --owner=0 --group=0 --format=posix -czvf homebridge-config-ui-x-${{ steps.tag.outputs.latestTag }}.tar.gz .
shasum -a 256 homebridge-config-ui-x-${{ steps.tag.outputs.latestTag }}.tar.gz > SHASUMS256.txt
- name: Check Bundle
run: |
if [ $(stat -c%s "homebridge-config-ui-x-${{ github.event.release.tag_name }}.tar.gz") -lt 10000000 ]; then
if [ $(stat -c%s "homebridge-config-ui-x-${{ steps.tag.outputs.latestTag }}.tar.gz") -lt 10000000 ]; then
echo "Bundle is under 10MB, stopping"
exit 1
fi
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v2
- name: Attach Bundle
uses: AButler/upload-release-assets@v3.0
with:
event-type: attach-artifacts
files: 'homebridge-config-ui-x-${{ steps.tag.outputs.latestTag }}.tar.gz;SHASUMS256.txt'
repo-token: ${{ secrets.GITHUB_TOKEN }}
release-tag: ${{ steps.tag.outputs.latestTag }}

0 comments on commit fff0d5d

Please sign in to comment.