Skip to content

Commit

Permalink
Chore: Update DevOps tooling from central repository
Browse files Browse the repository at this point in the history
Signed-off-by: Xavier Barrachina Civera <[email protected]>
  • Loading branch information
xbarra committed Jul 16, 2024
1 parent b868e0f commit 8c575e5
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 76 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/bootstrap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,8 @@ jobs:
git branch -D "$AUTOMATION_BRANCH" || :
git checkout -b "$AUTOMATION_BRANCH"
else
# The -B flag swaps branch and creates it if NOT present
git checkout -B "$AUTOMATION_BRANCH"
git fetch origin "$AUTOMATION_BRANCH"
git switch -c "$AUTOMATION_BRANCH" "origin/$AUTOMATION_BRANCH"
fi
# Only if NOT running in GitHub
Expand Down
38 changes: 25 additions & 13 deletions .github/workflows/builds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,34 @@ on:
- "*"
- "!update-devops-tooling"

env:
package-path: "dist/"

jobs:
parse-project-metadata:
name: "Determine Python versions"
# yamllint disable-line rule:line-length
uses: os-climate/devops-reusable-workflows/.github/workflows/pyproject-toml-fetch-matrix.yaml@main
get-python-versions:
name: "Validate Python project"
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.parse-project-metadata.outputs.python-matrix-versions }}

steps:
- uses: actions/checkout@v4

test-builds:
name: "Build: Python"
needs: [parse-project-metadata]
- name: "Parse: pyproject.toml"
id: parse-project-metadata
# yamllint disable-line rule:line-length
uses: os-climate/devops-reusable-workflows/.github/actions/python-versions-matrix@main

builds:
name: "Python builds"
needs: [get-python-versions]
runs-on: "ubuntu-latest"
continue-on-error: true
# Don't run when pull request is merged
if: github.event.pull_request.merged == false
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.parse-project-metadata.outputs.matrix) }}
matrix: ${{ fromJson(needs.get-python-versions.outputs.matrix) }}

steps:
- name: "Populate environment variables"
Expand Down Expand Up @@ -81,8 +93,8 @@ jobs:
python -m build
fi
- name: "Validating Artefacts with Twine"
run: |
echo "Validating artefacts with: twine check dist/*"
pip install --upgrade twine
twine check dist/*
- name: "Validate Artefacts with Twine"
id: twine-check-artefacts
env:
package-path: ${{ env.package-path }}
uses: os-climate/devops-reusable-workflows/.github/actions/twine-check-artefacts@main
26 changes: 17 additions & 9 deletions .github/workflows/security.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,29 @@ on:
- "!update-devops-tooling"

jobs:
get-python-versions:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.parse-project-metadata.outputs.python-matrix-versions }}

steps:
- uses: actions/checkout@v4

parse-project-metadata:
name: "Determine Python versions"
# yamllint disable-line rule:line-length
uses: os-climate/devops-reusable-workflows/.github/workflows/pyproject-toml-fetch-matrix.yaml@main
- name: "Populate environment variables"
id: parse-project-metadata
# yamllint disable-line rule:line-length
uses: os-climate/devops-reusable-workflows/.github/actions/python-versions-matrix@main

build:
name: "Audit Python dependencies"
needs: [parse-project-metadata]
runs-on: ubuntu-latest
builds:
name: "Python builds"
needs: [get-python-versions]
runs-on: "ubuntu-latest"
continue-on-error: true
# Don't run when pull request is merged
if: github.event.pull_request.merged == false
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.parse-project-metadata.outputs.matrix) }}
matrix: ${{ fromJson(needs.get-python-versions.outputs.matrix) }}

steps:
- name: "Checkout repository"
Expand Down
19 changes: 13 additions & 6 deletions .github/workflows/testing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,28 @@ on:
- "!update-devops-tooling"

jobs:
get-python-versions:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.parse-project-metadata.outputs.python-matrix-versions }}

steps:
- uses: actions/checkout@v4

parse-project-metadata:
name: "Determine Python versions"
# yamllint disable-line rule:line-length
uses: os-climate/devops-reusable-workflows/.github/workflows/pyproject-toml-fetch-matrix.yaml@main
- name: "Populate environment variables"
id: parse-project-metadata
# yamllint disable-line rule:line-length
uses: os-climate/devops-reusable-workflows/.github/actions/python-versions-matrix@main

testing:
name: "Run unit tests"
needs: [parse-project-metadata]
needs: [get-python-versions]
runs-on: ubuntu-latest
# Don't run when pull request is merged
if: github.event.pull_request.merged == false
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.parse-project-metadata.outputs.matrix) }}
matrix: ${{ fromJson(needs.get-python-versions.outputs.matrix) }}

steps:
- name: "Checkout repository"
Expand Down
60 changes: 14 additions & 46 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
---
ci:
autofix_commit_msg: "Chore: pre-commit autoupdate"
skip:
# pre-commit.ci cannot install WGET, so tomlint must be disabled
- tomllint

exclude: |
(?x)^(
Expand All @@ -13,21 +10,10 @@ exclude: |
repos:

- repo: local
hooks:
- id: tomllint
name: "Script: scripts/tomllint.sh"
language: script
# pass_filenames: false
files: \^*.toml
types: [file]
entry: scripts/tomllint.sh .

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-case-conflict
- id: check-executables-have-shebangs
- id: check-json
Expand All @@ -38,17 +24,15 @@ repos:
# - id: detect-aws-credentials
- id: check-xml
- id: check-yaml
- id: debug-statements
- id: detect-private-key
- id: end-of-file-fixer
- id: mixed-line-ending
args: ["--fix=lf"]
# - id: mixed-line-ending
# args: ["--fix=lf"]
- id: name-tests-test
args: ["--pytest-test-first"]
- id: no-commit-to-branch
# - id: pretty-format-json
- id: requirements-txt-fixer
- id: trailing-whitespace

- repo: https://github.com/pre-commit/mirrors-prettier
rev: v4.0.0-alpha.8
Expand Down Expand Up @@ -78,72 +62,56 @@ repos:
rev: v0.10.0.1
hooks:
- id: shellcheck

- repo: https://github.com/pycqa/pydocstyle.git
rev: 6.3.0
hooks:
- id: pydocstyle
additional_dependencies: ["tomli"]
args: ["-x"] # Check external files

- repo: https://github.com/Mateusz-Grzelinski/actionlint-py
rev: v1.7.1.15
hooks:
- id: actionlint

- repo: https://github.com/pycqa/flake8
rev: "7.1.0"
hooks:
- id: flake8
additional_dependencies:
- pep8-naming

- repo: https://github.com/adrienverge/yamllint.git
rev: v1.35.1
hooks:
- id: yamllint
args: [ "-d", "{rules: {line-length: {max: 120}}, ignore-from-file: [.gitignore],}", ]
args:
["-d", "{rules: {line-length: {max: 120}},
ignore-from-file: [.gitignore],}"]

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.4.9
rev: v0.5.2
hooks:
- id: ruff
files: ^(scripts|tests|custom_components)/.+\.py$
args: [--fix, --exit-non-zero-on-fix]
args: [--fix, --exit-non-zero-on-fix, --config=pyproject.toml]
- id: ruff-format
files: ^(scripts|tests|custom_components)/.+\.py$

- repo: local
hooks:
- id: mypy-cache
name: "create mypy cache"
language: system
pass_filenames: false
entry: bash -c 'if [ ! -d .mypy_cache ]; then /bin/mkdir .mypy_cache; fi; exit 0'
entry: bash -c 'if [ ! -d .mypy_cache ];
then /bin/mkdir .mypy_cache; fi; exit 0'

- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.10.0"
rev: "v1.10.1"
hooks:
- id: mypy
verbose: true
args: ["--show-error-codes", "--install-types", "--non-interactive"]
additional_dependencies: ["pytest", "types-requests"]

# yamllint disable rule:comments-indentation
# Check for misspellings in documentation files
# - repo: https://github.com/codespell-project/codespell
# rev: v2.2.2
# hooks:
# - id: codespell

# To embrace black styles, even in docs
# - repo: https://github.com/asottile/blacken-docs
# rev: v1.13.0
# hooks:
# - id: blacken-docs
# additional_dependencies: [black]
# - id: codespell

# Automatically upgrade Python syntax for newer versions
# - repo: https://github.com/asottile/pyupgrade
# rev: v3.15.0
# hooks:
# - id: pyupgrade
# args: ['--py37-plus']
# yamllint enable rule:comments-indentation

0 comments on commit 8c575e5

Please sign in to comment.