From 874d081804a8ee0c5b9e8c859091d1eae1db10df Mon Sep 17 00:00:00 2001 From: d-eigo-hara Date: Fri, 23 Jan 2026 09:23:12 +0000 Subject: [PATCH 1/7] add: actionlint for pre-commit --- .pre-commit-config.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b76b7d5..f2b3c89 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -52,6 +52,11 @@ repos: language: python types: [python] + - repo: https://github.com/rhysd/actionlint + rev: v1.7.10 + hooks: + - id: actionlint + - repo: https://github.com/hadolint/hadolint rev: v2.12.0 hooks: From 159fc09cde8df52809240dfa34178ec1f3fc2f50 Mon Sep 17 00:00:00 2001 From: d-eigo-hara Date: Fri, 23 Jan 2026 09:24:50 +0000 Subject: [PATCH 2/7] add: actionlint --- .github/workflows/actionlint.yml | 18 ++++++++++++++++++ .github/workflows/gh-deploy.yml | 5 +++-- 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/actionlint.yml diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml new file mode 100644 index 0000000..60ab2d5 --- /dev/null +++ b/.github/workflows/actionlint.yml @@ -0,0 +1,18 @@ +name: Lint GitHub Actions workflows + +on: + pull_request: + paths: + - .github/workflows/*.yml + - .github/actionlint.yml + - .github/actionlint-matcher.json + +jobs: + actionlint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Check workflow files + uses: reviewdog/action-actionlint@v1 diff --git a/.github/workflows/gh-deploy.yml b/.github/workflows/gh-deploy.yml index 9aea5b6..7db889c 100644 --- a/.github/workflows/gh-deploy.yml +++ b/.github/workflows/gh-deploy.yml @@ -33,12 +33,13 @@ jobs: uses: ./.github/actions/setup-python-with-uv - name: Generate cache id - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + id: cache + run: echo "id=$(date --utc '+%V')" >> "$GITHUB_OUTPUT" - name: Save cache uses: actions/cache@v5 with: - key: mkdocs-material-${{ env.cache_id }} + key: mkdocs-material-${{ steps.cache.outputs.id }} path: .cache restore-keys: mkdocs-material- From 99d1904726d336f4e3513e8e21100aec2018f99a Mon Sep 17 00:00:00 2001 From: d-eigo-hara Date: Fri, 23 Jan 2026 09:26:46 +0000 Subject: [PATCH 3/7] fix: path --- .github/workflows/actionlint.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml index 60ab2d5..8dd1596 100644 --- a/.github/workflows/actionlint.yml +++ b/.github/workflows/actionlint.yml @@ -4,8 +4,6 @@ on: pull_request: paths: - .github/workflows/*.yml - - .github/actionlint.yml - - .github/actionlint-matcher.json jobs: actionlint: From 21bedea13b47cea9844f53e7dcf1e66e6fa9633f Mon Sep 17 00:00:00 2001 From: d-eigo-hara Date: Sun, 25 Jan 2026 02:49:41 +0000 Subject: [PATCH 4/7] add: spell checker --- .vscode/cspell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/cspell.json b/.vscode/cspell.json index 1aa71c5..8ec5de8 100644 --- a/.vscode/cspell.json +++ b/.vscode/cspell.json @@ -87,6 +87,7 @@ "pyupgrade", "qodo", "redoc", + "reviewdog", "rootdir", "ropeproject", "scrapy", From 05a7b72e68fee661d6be6035a17774cc20237393 Mon Sep 17 00:00:00 2001 From: d-eigo-hara Date: Sun, 25 Jan 2026 02:49:56 +0000 Subject: [PATCH 5/7] update: docs --- CLAUDE.md | 1 + docs/configurations/pre-commit.md | 7 +++++++ docs/guides/index.md | 1 + docs/index.md | 1 + 4 files changed, 10 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index ade777d..69de42a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -252,6 +252,7 @@ When adding new utilities to `tools/`, add corresponding documentation to `docs/ ## CI/CD Workflows GitHub Actions workflows in `.github/workflows/`: +- **actionlint.yml**: Lint GitHub Actions workflows - **docker.yml**: Validate Docker build - **devcontainer.yml**: Validate Dev Container configuration - **format.yml**: Check Ruff formatting diff --git a/docs/configurations/pre-commit.md b/docs/configurations/pre-commit.md index b276b52..6d3912d 100644 --- a/docs/configurations/pre-commit.md +++ b/docs/configurations/pre-commit.md @@ -13,6 +13,8 @@ - [https://github.com/sqlfluff/sqlfluff](https://github.com/sqlfluff/sqlfluff) - SQLFluff Lint - SQLFluff Fix +- [https://github.com/rhysd/actionlint](https://github.com/rhysd/actionlint) + - actionlint - [https://github.com/hadolint/hadolint](https://github.com/hadolint/hadolint) - Hadolint @@ -44,6 +46,11 @@ repos: name: Ruff format description: "Run 'ruff format' for extremely fast Python formatting" + - repo: https://github.com/rhysd/actionlint + rev: v1.7.10 + hooks: + - id: actionlint + - repo: https://github.com/hadolint/hadolint rev: v2.12.0 hooks: diff --git a/docs/guides/index.md b/docs/guides/index.md index badcb91..cafe22f 100644 --- a/docs/guides/index.md +++ b/docs/guides/index.md @@ -10,6 +10,7 @@ This template includes several modern Python development tools, each serving a s - **Ruff** - Lightning-fast linting and formatting - **ty** - Advanced type checking - **SQLFluff** - SQL linting and formatting +- **actionlint** - GitHub Actions workflow linting - **pytest** - Comprehensive testing framework - **nox** - Task automation and workflow management - **pre-commit** - Automated code quality checks diff --git a/docs/index.md b/docs/index.md index 48bcc8c..25bda19 100644 --- a/docs/index.md +++ b/docs/index.md @@ -15,6 +15,7 @@ This repository provides a complete, batteries-included development environment - **Ultra-fast package management** - [uv](https://github.com/astral-sh/uv) is 10-100x faster than pip - **Lightning-fast code quality** - [Ruff](https://github.com/astral-sh/ruff) replaces Black, isort, Flake8, and more - **SQL linting** - [SQLFluff](https://github.com/sqlfluff/sqlfluff) for SQL code quality +- **GitHub Actions linting** - [actionlint](https://github.com/rhysd/actionlint) for workflow file quality - **Type safety** - ty for comprehensive type checking - **Automated testing** - pytest with 75% coverage requirement - **Task automation** - nox for streamlined development workflows From 1dbf81f477c5761102e6efc9f1532d59d16b94d0 Mon Sep 17 00:00:00 2001 From: d-eigo-hara Date: Mon, 26 Jan 2026 10:37:36 +0900 Subject: [PATCH 6/7] fix: gh-deploy --- .github/workflows/gh-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-deploy.yml b/.github/workflows/gh-deploy.yml index 7db889c..93f5020 100644 --- a/.github/workflows/gh-deploy.yml +++ b/.github/workflows/gh-deploy.yml @@ -34,7 +34,7 @@ jobs: - name: Generate cache id id: cache - run: echo "id=$(date --utc '+%V')" >> "$GITHUB_OUTPUT" + run: echo "id=$(find docs -type f -print0 | sort -z | xargs -0 sha256sum mkdocs.yml pyproject.toml uv.lock | sha256sum | awk '{print $1}')" >> "$GITHUB_OUTPUT" - name: Save cache uses: actions/cache@v5 From 864f1507424de68daa935affdcd93eb0ae86c4f8 Mon Sep 17 00:00:00 2001 From: d-eigo-hara Date: Mon, 26 Jan 2026 10:38:01 +0900 Subject: [PATCH 7/7] fix: format docs --- docs/configurations/index.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/configurations/index.md b/docs/configurations/index.md index 5153c64..c81e2bc 100644 --- a/docs/configurations/index.md +++ b/docs/configurations/index.md @@ -17,15 +17,15 @@ Each tool is configured through dedicated configuration files in the repository ## Configuration Files -| File | Tool | Purpose | -|------|------|---------| -| `pyproject.toml` | uv, Project | Dependencies and project metadata | -| `ruff.toml` | Ruff | Linting and formatting rules | -| `ty.toml` | ty | Type checking configuration | -| `.sqlfluff` | SQLFluff | SQL linting and formatting rules | -| `pytest.ini` | pytest | Testing and coverage settings | -| `.pre-commit-config.yaml` | pre-commit | Hook definitions | -| `noxfile.py` | nox | Task automation | +| File | Tool | Purpose | +| ------------------------- | ----------- | --------------------------------- | +| `pyproject.toml` | uv, Project | Dependencies and project metadata | +| `ruff.toml` | Ruff | Linting and formatting rules | +| `ty.toml` | ty | Type checking configuration | +| `.sqlfluff` | SQLFluff | SQL linting and formatting rules | +| `pytest.ini` | pytest | Testing and coverage settings | +| `.pre-commit-config.yaml` | pre-commit | Hook definitions | +| `noxfile.py` | nox | Task automation | ## Quick Links