forked from DigiLive/mushroom-strategy
Adds: - Strategy: - SceneCard: Support for Stateful scenes. Closes #190. - ValveCard: A card to control an entity of the valve domain. Closes #192. - LockView: A view for entities of the lock domain. Closes #171. - Modules: - RegistryFilter: Advanced filtering and sorting of Home Assistant registries. - Auxiliaries: Generic utility functions. - Debug: Centralized logging and debug level management. - Tooling: - ESLint configuration for linting. - Prettier configuration for code formatting. Removes: - Redundant types and interface annotations. - Redundant legacy and unused modules. - Localization constant from the `Helper` module in favor of a new `localize` utility. Refactors: - References regarding change of repository owner. - Auxiliary functions are moved from the `Helper` module to `Auxiliaries` module. - `Helper` module is renamed to `Registry` for centralized state and registry management. - `ControllerCard` is renamed to `HeaderCard`. - Doc-blocks and comments are updated for clarity and consistency. - The file tree is restructured for improved clarity, modularity, and scalability. - Third party type definitions are updated and cleaned up. - Issue and Pull Request templates. Optimizations: - Parallelization of dynamic imports for views and cards. - Improved error handling and logging throughout the codebase. - Sanitization of HASS registries after import. - Enforced stricter and simplified types and interfaces. - Localization now available at global scope. Fixes: - Wrong type in configuration of `HeaderCard`. - Translation files: Resolved key inconsistencies. - Removed unnecessary namespaces from types. - Typos and Grammar. - Explicit use of `any` types. - Turn off all entities of a domain with a chip tap action. - Rendering too small HASS area cards. - Count of active vacuums. Bumps: - Mushroom Strategy - home-assistant-js-websocket - superstruct - ts-loader - ts-node - typescript - webpack - webpack-cli
58 lines
1.6 KiB
YAML
58 lines
1.6 KiB
YAML
name: Build distribution with Webpack
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
# Ignore changes in folders that are affected by the auto commit. (Node.js project)
|
|
paths-ignore:
|
|
- 'dist/**'
|
|
# pull_request:
|
|
# branches: [ "main" ]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
CI_COMMIT_MESSAGE: Continuous Integration - Build Distribution
|
|
CI_COMMIT_AUTHOR: Continuous Integration
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [ 18.x ]
|
|
|
|
# Checkout Repository
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
token: ${{ secrets.WORKFLOW_GIT_ACCESS_TOKEN }}
|
|
|
|
# Build steps
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
|
|
- name: Node Install
|
|
run: npm ci
|
|
|
|
- name: Build Distribution
|
|
run: |
|
|
npm run build
|
|
|
|
- name: Check for file changes
|
|
id: checkDiff
|
|
run: |
|
|
git diff --quiet . || echo "changed=true" >> $GITHUB_OUTPUT
|
|
|
|
# Commit and push all changed files.
|
|
# Must only affect files that are listed in "paths-ignore".
|
|
- name: GIT Commit Distribution Build
|
|
# Only run on a main branch push (e.g., pull request merge).
|
|
if: github.event_name == 'push' && steps.checkDiff.outputs.changed == 'true'
|
|
run: |
|
|
git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}"
|
|
git config --global user.email "ci_activity@noreply.github.com"
|
|
git add dist
|
|
git commit -m "${{ env.CI_COMMIT_MESSAGE }}"
|
|
git push
|