Skip to content

Commit

Permalink
Code refresh and modernize (#121)
Browse files Browse the repository at this point in the history
* Initial fixes

* Update TOC

* Update

* Update TOC

* Fixes

* Update TOC

* Initial automated testing (#92)

* Initial automated testing

* Fix merge

---------

Co-authored-by: Northern Man <[email protected]>

* Fixes

* Update TOC

* Tweaks

* Update TOC

* Update Accessory.js

* Update TOC

* Fix slowness

* Update TOC

* Fixes

* Update TOC

* Fixes for control

* Update TOC

* Tuning

* Update TOC

* Update HAP-NodeRed.js

* Update TOC

* Update HAP-NodeRed.js

* Update TOC

* Fix photos

* Update package.json

* Update TOC

* Pre ChatGPT

* config node

* Create hbEventNode.js

* Auto publish updates

* Resume

* wip

* Post split

* WIP

* Pre flip

* WIP

* Started

* WIP - Pre migratration to hap-client

* wip

* wip

* WIP

* WIP

* Update flows.json

* WIP

* WIP

* WIP

* WIP

* Stable

* WIP

* WIP

* WIP

* WIP

* Update hbControlNode.js

* Filtered camera's

* WIP

* WIP

* WIP

* Stable

* Pre Typescript

* Logging

* Update TOC

* Delete homebridge_v1.3.10_amd64.deb

* Remove logger code

* Try this

* Resume is fixed

* Final

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Daniel Caspi <[email protected]>
  • Loading branch information
3 people authored Dec 4, 2024
1 parent d63f7a2 commit daf0598
Show file tree
Hide file tree
Showing 35 changed files with 21,445 additions and 2,774 deletions.
125 changes: 125 additions & 0 deletions .github/workflows/Build and Publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name:
'Build, Publish and Release'

#
# Automatically publish beta releases on pushes, require a manual workflow action for production releases
#
# Does the following
# 1 - Run the documentation script against the package
# 2 - Create the npm package using the package.json version tag ( or for beta releases, adds a beta tag and increments as needed )
# 3 - Publish the npm package
# 4 - For releases against the latest branch, create a github release as well

on:
push:
branches: [beta-*.*.*, beta]
workflow_dispatch:

jobs:
get_tags:
runs-on: ubuntu-latest

steps:
# checkout repo
- uses: actions/checkout@v4

# get branch / tag name
- name: Get Branch / Tag Name
id: get_branch
run: |
export BRANCH_NAME=$(if [[ ${GITHUB_REF} =~ "refs/tags/" ]]; then echo ${GITHUB_REF/refs\/tags\//}; else echo ${GITHUB_REF/refs\/heads\//}; fi)
echo $BRANCH_NAME
echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_OUTPUT
# generate the image tag
- name: Get Image Tag
id: get_tag
run: |
export TARGET_IMAGE_TAG=$(if [ "${{ steps.get_branch.outputs.BRANCH_NAME }}" = "main" ]; then echo "main"; else echo "${{ steps.get_branch.outputs.BRANCH_NAME }}" | awk -F- '{ print $1 }'; fi)
echo $TARGET_IMAGE_TAG
echo "TARGET_IMAGE_TAG=${TARGET_IMAGE_TAG}" >> $GITHUB_OUTPUT
outputs:
BRANCH_NAME: ${{ steps.get_branch.outputs.BRANCH_NAME }}
TARGET_IMAGE_TAG: ${{ steps.get_tag.outputs.TARGET_IMAGE_TAG }}

create_documentation:
runs-on: ubuntu-latest

steps:
# checkout repo
- uses: actions/checkout@v4
with:
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal access token.
fetch-depth: 0 # otherwise, there would be errors pushing refs to the destination repository.

- uses: actions/setup-node@v4
with:
node-version: lts/*

- name: Retrieve github-markdown-toc
run: |
wget -q https://raw.githubusercontent.com/ekalinin/github-markdown-toc/master/gh-md-toc
chmod a+x gh-md-toc
- name: Create Table of Contents
run: |
npm run-script document --if-present
rm gh-md-toc
- name: Commit files
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add * || true
git commit -a -m "Update TOC" || true
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}

publish_prod_release:
permissions:
id-token: write
needs: [get_tags, create_documentation]
name: Publish Release Version
if: ${{ needs.get_tags.outputs.BRANCH_NAME == 'main' }}
uses: homebridge/.github/.github/workflows/npm-publish.yml@latest
with:
install_cmd: npm ci
secrets:
npm_auth_token: ${{ secrets.NPM_TOKEN }}

publish_test_release:
permissions:
id-token: write
needs: [get_tags, create_documentation]
name: Publish Test Version - ${{ needs.get_tags.outputs.BRANCH_NAME }}
if: ${{ needs.get_tags.outputs.BRANCH_NAME != 'main' }}
uses: homebridge/.github/.github/workflows/npm-publish.yml@latest
with:
tag: ${{ needs.get_tags.outputs.TARGET_IMAGE_TAG }}
dynamically_adjust_version: true
npm_version_command: pre
pre_id: ${{ needs.get_tags.outputs.TARGET_IMAGE_TAG }}
install_cmd: npm ci
secrets:
npm_auth_token: ${{ secrets.NPM_TOKEN }}

publish_github_release:
needs: [publish_prod_release]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Create Release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ needs.publish_prod_release.outputs.NPM_VERSION }}
name: Release ${{ needs.publish_prod_release.outputs.NPM_VERSION }}
generate_release_notes: true
draft: false
prerelease: false
20 changes: 17 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
npm-debug.log
*.zip
node_modules
package-lock.json
password*
README.md.toc*
README.md.orig*
Troubleshooting.md.toc*
Troubleshooting.md.orig*

.DS_Store
node_modules/
coverage/

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# nyc test coverage
.nyc_output
test/node-red/.flows.json.backup
test/node-red/.flows.json.backup
6 changes: 6 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "all",
"singleQuote": true
}
Loading

0 comments on commit daf0598

Please sign in to comment.