Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ktibow/ha-blueprint
General purpose CI action for custom components/cards
https://github.com/ktibow/ha-blueprint
black cards ci custom-component custom-integration github-action hacs home-assistant integration integration-testing integration-tests isort javascript js prettier python python3 ts typescript
Last synced: 3 months ago
JSON representation
General purpose CI action for custom components/cards
- Host: GitHub
- URL: https://github.com/ktibow/ha-blueprint
- Owner: KTibow
- License: mit
- Created: 2020-09-12T17:34:05.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-09-12T01:56:47.000Z (over 2 years ago)
- Last Synced: 2024-10-13T08:42:08.692Z (3 months ago)
- Topics: black, cards, ci, custom-component, custom-integration, github-action, hacs, home-assistant, integration, integration-testing, integration-tests, isort, javascript, js, prettier, python, python3, ts, typescript
- Language: Python
- Homepage:
- Size: 112 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# ha-blueprint
## Warning
```
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! ha-blueprint is being retired, it has way too many issues with it !
! please manually use hassfest and hacs in actions, ping @KTibow if you want help !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
```
This is a GitHub Action for advanced Home Assistant CI. Whenever you push to your repo, this will happen:
- It'll format it (black + isort for python, prettier for js)
- It'll go ahead and pull it, format it, and amend the changes to the last commit.
- It'll lint it
- JS: Run ESLint to catch syntax errors
- Python: It runs Hassfest (to catch invalid integrations), HACS (to catch invalid HACS integrations), and flake8 (to catch invalid python).Thanks [https://github.com/custom-components/blueprint] for the blueprint.
Add this file to `.github/workflows/combined.yaml`:
```
name: "Validation And Formatting"
on:
push:
pull_request:
schedule:
- cron: '0 0 * * *'
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
name: Download repo
with:
fetch-depth: 0
- uses: actions/setup-python@v2
name: Setup Python
with:
python-version: '3.8.x'
- uses: actions/cache@v2
name: Cache
with:
path: |
~/.cache/pip
key: custom-component-ci
- uses: hacs/action@main
with:
CATEGORY: integration
- uses: KTibow/ha-blueprint@stable
name: CI
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
## Some notes:
- Change the CATEGORY to plugin if it's a JS card or plugin instead of an integration.
- Remove this block to disable HACS validation:
```
- uses: hacs/action@main
with:
CATEGORY: integration
```
- Change
```
- uses: KTibow/ha-blueprint@stable
name: CI
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
to
```
- uses: KTibow/ha-blueprint@stable
name: CI
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FORMAT_CODE: DISABLED
```
to disable code formatting.
- Set `HASSFEST` to `DISABLED` to disable hassfest
- Set `FLAKE8_FAILS` to customize stuff that the run fails onHere's an example log run: https://github.com/KTibow/ha-blueprint/runs/1244330084?check_suite_focus=true
you don't need to click and expand this
need a badge? no worries.
https://img.shields.io/github/workflow/status/KTibow/ha-blueprint/Validation%20And%20Formatting?logoColor=white&label=way%20too%20much%20validation&logo=github-actions&style=flat-square&logoWidth=25&labelColor=black
change `KTibow/ha-blueprint/Validation%20And%20Formatting` to the name of your repo and workflow.
link back in markdown if you want.give me a thanks [here](https://saythanks.io/to/kendell.r%40outlook.com)
give me a heart [here](https://community.home-assistant.io/t/235041?u=ktibow)or just give me a star
i'm going to assume you've done that and thank you for letting me know that this is a worthwile thing.