Skip to content

chore: add stale workflow to manage inactive issues/PRs #113

chore: add stale workflow to manage inactive issues/PRs

chore: add stale workflow to manage inactive issues/PRs #113

Workflow file for this run

name: CI
permissions:
contents: read
on:
push:
branches: [ master, main ]
tags:
- 'v*.*.*'
- 'v*.*.*-*'
pull_request:
branches: [ master, main ]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v5
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Run tests
run: |
python run_tests.py
- name: Upload coverage to Codecov
if: matrix.python-version == '3.12'
uses: codecov/codecov-action@v5
with:
files: ./coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Run custom validation
run: |
python validate.py
type-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Install pyright
run: |
npm install -g pyright
- name: Run type checking
run: |
pyright
hacs-validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: HACS validation
uses: hacs/action@main
with:
category: integration
hassfest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Run hassfest
uses: home-assistant/actions/hassfest@master
release:
needs: [test, validate, type-check, lint, hacs-validation]
runs-on: ubuntu-latest
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
permissions:
contents: write
steps:
- uses: actions/checkout@v5
- name: Create Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
generate_release_notes: true
name: ${{ github.ref_name }}
draft: false
prerelease: ${{ contains(github.ref_name, '-') }}
token: ${{ secrets.GITHUB_TOKEN }}
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Run linting
run: |
black --check --diff custom_components/custom_areas/
isort --check-only --diff custom_components/custom_areas/
flake8 custom_components/custom_areas/
ruff check custom_components/custom_areas/
cd custom_components && python -m mypy custom_areas/