diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f879333..0a4b38f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,11 +14,11 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: "3.9" - - uses: pre-commit/action@v2.0.3 + - uses: pre-commit/action@v3.0.1 # Make sure commit messages follow the conventional commits convention: # https://www.conventionalcommits.org @@ -26,10 +26,10 @@ jobs: name: Lint Commit Messages runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: wagoid/commitlint-github-action@v4.1.11 + - uses: wagoid/commitlint-github-action@v6 test: strategy: @@ -39,22 +39,26 @@ jobs: - "3.9" - "3.10" - "3.11" + - "3.12" + - "3.13" os: - ubuntu-latest runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - uses: snok/install-poetry@v1 - name: Install Dependencies + shell: bash run: poetry install - name: Test with Pytest + shell: bash run: poetry run pytest --cov-report=xml - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} @@ -66,9 +70,12 @@ jobs: - test - lint - commitlint + permissions: + id-token: write + contents: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 @@ -77,9 +84,17 @@ jobs: # - Update version in code # - Create git tag # - Create GitHub release - # - Publish to PyPI - name: Python Semantic Release - uses: python-semantic-release/python-semantic-release@v7.34.6 + id: release + uses: python-semantic-release/python-semantic-release@v9.17.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} - pypi_token: ${{ secrets.PYPI_TOKEN }} + - name: Upload package to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + if: steps.release.outputs.released == 'true' + - name: Upload Github Release Assets + uses: python-semantic-release/publish-action@v9.17.0 + if: steps.release.outputs.released == 'true' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ steps.release.outputs.tag }} diff --git a/.github/workflows/hacktoberfest.yml b/.github/workflows/hacktoberfest.yml index dbb4759..00239a4 100644 --- a/.github/workflows/hacktoberfest.yml +++ b/.github/workflows/hacktoberfest.yml @@ -12,6 +12,6 @@ jobs: runs-on: ubuntu-latest steps: - - uses: browniebroke/hacktoberfest-labeler-action@v2.2.0 + - uses: browniebroke/hacktoberfest-labeler-action@v2.3.0 with: github_token: ${{ secrets.GH_PAT }} diff --git a/.github/workflows/issue-manager.yml b/.github/workflows/issue-manager.yml index e41c2fb..de5b0ad 100644 --- a/.github/workflows/issue-manager.yml +++ b/.github/workflows/issue-manager.yml @@ -18,7 +18,7 @@ jobs: issue-manager: runs-on: ubuntu-latest steps: - - uses: tiangolo/issue-manager@0.4.0 + - uses: tiangolo/issue-manager@0.5.1 with: token: ${{ secrets.GITHUB_TOKEN }} config: > diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 638716e..adb437c 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -11,9 +11,9 @@ jobs: labels: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: 3.8 - name: Install labels diff --git a/commitlint.config.js b/commitlint.config.mjs similarity index 92% rename from commitlint.config.js rename to commitlint.config.mjs index 8b82768..deb029a 100644 --- a/commitlint.config.js +++ b/commitlint.config.mjs @@ -1,4 +1,4 @@ -module.exports = { +export default { extends: ["@commitlint/config-conventional"], rules: { "header-max-length": [0, "always", Infinity], diff --git a/pyproject.toml b/pyproject.toml index 618ae13..1c3257d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,10 +47,14 @@ docs = [ pytest = "^8.3" pytest-cov = "^6.0" + [tool.semantic_release] branch = "main" -version_toml = "pyproject.toml:project.version" -version_variable = "src/bluetooth_sensor_state_data/__init__.py:__version__" +version_toml = ["pyproject.toml:tool.poetry.version"] +version_variables = [ + "src/bluetooth_sensor_state_data/__init__.py:__version__", + "docs/conf.py:release", +] build_command = "pip install poetry && poetry build" [tool.pytest.ini_options]