Skip to content

📦 Update release management script #10

📦 Update release management script

📦 Update release management script #10

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches:
- main
tags:
- "v*.*.*"
pull_request:
branches:
- main
jobs:
lint:
name: Lint Code Base
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
- name: Run Ruff
run: poetry run ruff check .
test:
name: Run Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
- name: Run tests with pytest
run: poetry run pytest --cov=custom_components/signalrgb --cov-report=xml
validate:
name: Validate Project
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Run hassfest
uses: home-assistant/actions/hassfest@master
- name: HACS validation
uses: hacs/action@main
with:
category: integration
build:
name: Build Project
needs: [lint, test, validate]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
- name: Build the package
run: |
poetry build
release:
name: Create Release
if: startsWith(github.ref, 'refs/tags/')
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
- name: Bump version and create a release
id: create_release
run: |
VERSION=$(poetry version --short)
git tag v$VERSION
git push --tags
echo "::set-output name=version::$VERSION"
- name: Create GitHub Release
uses: actions/create-release@v1
with:
tag_name: v${{ steps.create_release.outputs.version }}
release_name: Release ${{ steps.create_release.outputs.version }}
draft: false
prerelease: false
- name: Upload Build Artifacts
uses: actions/upload-artifact@v3
with:
name: dist
path: dist/