Skip to content

Home Assistant CI #1584

Home Assistant CI

Home Assistant CI #1584

---
name: Home Assistant CI
on:
push:
pull_request:
schedule:
- cron: 0 2 * * *
env:
DEFAULT_PYTHON: "3.12"
jobs:
# YAML Lint
yamllint:
name: 🧹 YAML Lint
runs-on: ubuntu-latest
steps:
- name: ‡️ Check out configuration from GitHub
uses: actions/checkout@v4
- name: πŸš€ Run yamllint
uses: frenck/action-yamllint@v1.5
#Remark Lint
remarklint:
name: 🧹 Remark Lint
runs-on: ubuntu-latest
steps:
- name: ‡️ Check out configuration from GitHub
uses: actions/checkout@v4
- name: Running Remark lint
uses: "docker://pipelinecomponents/remark-lint:latest"
continue-on-error: true
with:
args: "remark --no-stdout --color --frail --use preset-lint-recommended ."
#Home Assistant - Config check
home_assistant:
name: 🏠 HA Core / ${{ matrix.version }} Check
runs-on: ubuntu-latest
needs: [yamllint, remarklint]
strategy:
fail-fast: false
matrix:
version: ["stable", "beta", "dev"]
steps:
- name: ‡️ Check out configuration from GitHub
uses: actions/checkout@v4
- name: βž• Create dummy files
run: |
touch ./home-assistant.log
- name: πŸš€ Run Home Assistant Configuration Check
uses: frenck/action-home-assistant@v1.4
with:
secrets: ./.stubs/fake_secrets.yaml
version: "${{ matrix.version }}"
esphome:
name: πŸ› οΈ ESPHome check
runs-on: ubuntu-latest
needs: [yamllint]
steps:
- name: ‡️ Check out configuration from GitHub
uses: actions/checkout@v4
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install esphome
pip list
esphome version
- name: Copy stub files into configuration folder
run: cp -R ./.stubs/fake_secrets.yaml ./esphome/secrets.yaml
- name: Run esphome on all files
# yamllint disable rule:line-length
run: |
for file in $(find ./esphome -type f -name "*.yaml" -not -name "secrets.yaml"); do esphome config "${file}"; done