From 24d4898865ab17b54c8ce05e532e2ffd2de7f3e8 Mon Sep 17 00:00:00 2001 From: mr-forust Date: Sun, 28 Jun 2026 00:37:48 +0200 Subject: [PATCH] Revert "Run CI linters without Docker" This reverts commit a74b8bfd14cac540a3935b561e625c24459b3245. --- .gitea/workflows/ci.yaml | 59 ++++++++++++++++++++++----------------- .github/workflows/ci.yaml | 59 ++++++++++++++++++++++----------------- 2 files changed, 66 insertions(+), 52 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 14d4c55..eac1f98 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -18,16 +18,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Check lint toolchain - shell: bash - run: | - for tool in prettier ruff yamllint hadolint; do - command -v "$tool" >/dev/null || { - echo "Missing required tool: $tool" >&2 - exit 1 - } - done - - name: Check formatting with Prettier shell: bash run: | @@ -42,15 +32,29 @@ jobs: exit 0 fi - prettier --check --ignore-unknown "${prettier_files[@]}" + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + node:22-alpine \ + sh -lc 'npx --yes prettier@3 --check --ignore-unknown "$@"' sh "${prettier_files[@]}" - name: Lint Python with Ruff shell: bash - run: ruff check . + run: | + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + ghcr.io/astral-sh/ruff:latest \ + check . - name: Lint YAML syntax shell: bash - run: yamllint -c .yamllint . + run: | + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + cytopia/yamllint:latest \ + -c .yamllint . - name: Lint Dockerfiles shell: bash @@ -64,7 +68,12 @@ jobs: exit 0 fi - hadolint -c .hadolint.yaml "${dockerfiles[@]}" + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + --entrypoint hadolint \ + hadolint/hadolint:latest-debian \ + -c .hadolint.yaml "${dockerfiles[@]}" validate: runs-on: [self-hosted, linux, arch, homelab] @@ -72,19 +81,14 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Check validation toolchain - shell: bash - run: | - for tool in yamllint kubeconform; do - command -v "$tool" >/dev/null || { - echo "Missing required tool: $tool" >&2 - exit 1 - } - done - - name: Lint YAML syntax shell: bash - run: yamllint -c .yamllint . + run: | + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + cytopia/yamllint:latest \ + -c .yamllint . - name: Validate Kubernetes manifests shell: bash @@ -99,7 +103,10 @@ jobs: exit 0 fi - kubeconform \ + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + ghcr.io/yannh/kubeconform:latest \ -strict \ -ignore-missing-schemas \ -summary \ diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 14d4c55..eac1f98 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,16 +18,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Check lint toolchain - shell: bash - run: | - for tool in prettier ruff yamllint hadolint; do - command -v "$tool" >/dev/null || { - echo "Missing required tool: $tool" >&2 - exit 1 - } - done - - name: Check formatting with Prettier shell: bash run: | @@ -42,15 +32,29 @@ jobs: exit 0 fi - prettier --check --ignore-unknown "${prettier_files[@]}" + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + node:22-alpine \ + sh -lc 'npx --yes prettier@3 --check --ignore-unknown "$@"' sh "${prettier_files[@]}" - name: Lint Python with Ruff shell: bash - run: ruff check . + run: | + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + ghcr.io/astral-sh/ruff:latest \ + check . - name: Lint YAML syntax shell: bash - run: yamllint -c .yamllint . + run: | + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + cytopia/yamllint:latest \ + -c .yamllint . - name: Lint Dockerfiles shell: bash @@ -64,7 +68,12 @@ jobs: exit 0 fi - hadolint -c .hadolint.yaml "${dockerfiles[@]}" + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + --entrypoint hadolint \ + hadolint/hadolint:latest-debian \ + -c .hadolint.yaml "${dockerfiles[@]}" validate: runs-on: [self-hosted, linux, arch, homelab] @@ -72,19 +81,14 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Check validation toolchain - shell: bash - run: | - for tool in yamllint kubeconform; do - command -v "$tool" >/dev/null || { - echo "Missing required tool: $tool" >&2 - exit 1 - } - done - - name: Lint YAML syntax shell: bash - run: yamllint -c .yamllint . + run: | + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + cytopia/yamllint:latest \ + -c .yamllint . - name: Validate Kubernetes manifests shell: bash @@ -99,7 +103,10 @@ jobs: exit 0 fi - kubeconform \ + docker run --rm \ + -v "$PWD:/work" \ + -w /work \ + ghcr.io/yannh/kubeconform:latest \ -strict \ -ignore-missing-schemas \ -summary \