Run CI linters without Docker

This commit is contained in:
2026-06-28 00:36:17 +02:00
parent a2c5ca7f2b
commit a74b8bfd14
2 changed files with 52 additions and 66 deletions
+26 -33
View File
@@ -18,6 +18,16 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 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 - name: Check formatting with Prettier
shell: bash shell: bash
run: | run: |
@@ -32,29 +42,15 @@ jobs:
exit 0 exit 0
fi fi
docker run --rm \ prettier --check --ignore-unknown "${prettier_files[@]}"
-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 - name: Lint Python with Ruff
shell: bash shell: bash
run: | run: ruff check .
docker run --rm \
-v "$PWD:/work" \
-w /work \
ghcr.io/astral-sh/ruff:latest \
check .
- name: Lint YAML syntax - name: Lint YAML syntax
shell: bash shell: bash
run: | run: yamllint -c .yamllint .
docker run --rm \
-v "$PWD:/work" \
-w /work \
cytopia/yamllint:latest \
-c .yamllint .
- name: Lint Dockerfiles - name: Lint Dockerfiles
shell: bash shell: bash
@@ -68,12 +64,7 @@ jobs:
exit 0 exit 0
fi fi
docker run --rm \ hadolint -c .hadolint.yaml "${dockerfiles[@]}"
-v "$PWD:/work" \
-w /work \
--entrypoint hadolint \
hadolint/hadolint:latest-debian \
-c .hadolint.yaml "${dockerfiles[@]}"
validate: validate:
runs-on: [self-hosted, linux, arch, homelab] runs-on: [self-hosted, linux, arch, homelab]
@@ -81,14 +72,19 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Lint YAML syntax - name: Check validation toolchain
shell: bash shell: bash
run: | run: |
docker run --rm \ for tool in yamllint kubeconform; do
-v "$PWD:/work" \ command -v "$tool" >/dev/null || {
-w /work \ echo "Missing required tool: $tool" >&2
cytopia/yamllint:latest \ exit 1
-c .yamllint . }
done
- name: Lint YAML syntax
shell: bash
run: yamllint -c .yamllint .
- name: Validate Kubernetes manifests - name: Validate Kubernetes manifests
shell: bash shell: bash
@@ -103,10 +99,7 @@ jobs:
exit 0 exit 0
fi fi
docker run --rm \ kubeconform \
-v "$PWD:/work" \
-w /work \
ghcr.io/yannh/kubeconform:latest \
-strict \ -strict \
-ignore-missing-schemas \ -ignore-missing-schemas \
-summary \ -summary \
+26 -33
View File
@@ -18,6 +18,16 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 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 - name: Check formatting with Prettier
shell: bash shell: bash
run: | run: |
@@ -32,29 +42,15 @@ jobs:
exit 0 exit 0
fi fi
docker run --rm \ prettier --check --ignore-unknown "${prettier_files[@]}"
-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 - name: Lint Python with Ruff
shell: bash shell: bash
run: | run: ruff check .
docker run --rm \
-v "$PWD:/work" \
-w /work \
ghcr.io/astral-sh/ruff:latest \
check .
- name: Lint YAML syntax - name: Lint YAML syntax
shell: bash shell: bash
run: | run: yamllint -c .yamllint .
docker run --rm \
-v "$PWD:/work" \
-w /work \
cytopia/yamllint:latest \
-c .yamllint .
- name: Lint Dockerfiles - name: Lint Dockerfiles
shell: bash shell: bash
@@ -68,12 +64,7 @@ jobs:
exit 0 exit 0
fi fi
docker run --rm \ hadolint -c .hadolint.yaml "${dockerfiles[@]}"
-v "$PWD:/work" \
-w /work \
--entrypoint hadolint \
hadolint/hadolint:latest-debian \
-c .hadolint.yaml "${dockerfiles[@]}"
validate: validate:
runs-on: [self-hosted, linux, arch, homelab] runs-on: [self-hosted, linux, arch, homelab]
@@ -81,14 +72,19 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Lint YAML syntax - name: Check validation toolchain
shell: bash shell: bash
run: | run: |
docker run --rm \ for tool in yamllint kubeconform; do
-v "$PWD:/work" \ command -v "$tool" >/dev/null || {
-w /work \ echo "Missing required tool: $tool" >&2
cytopia/yamllint:latest \ exit 1
-c .yamllint . }
done
- name: Lint YAML syntax
shell: bash
run: yamllint -c .yamllint .
- name: Validate Kubernetes manifests - name: Validate Kubernetes manifests
shell: bash shell: bash
@@ -103,10 +99,7 @@ jobs:
exit 0 exit 0
fi fi
docker run --rm \ kubeconform \
-v "$PWD:/work" \
-w /work \
ghcr.io/yannh/kubeconform:latest \
-strict \ -strict \
-ignore-missing-schemas \ -ignore-missing-schemas \
-summary \ -summary \