separate all workflows, better overview
Format (JS/TS) / format (pull_request) Successful in 6s
Lint (JS/TS) / lint (pull_request) Successful in 5s
Lint (Python) / lint (pull_request) Successful in 14s
Lint (QML) / lint (pull_request) Successful in 1m19s
Lint (Rust) / lint (pull_request) Has been cancelled

This commit is contained in:
2026-05-16 00:29:31 +02:00
parent 783d05f815
commit 4ab19a8e37
6 changed files with 160 additions and 89 deletions
-89
View File
@@ -1,89 +0,0 @@
name: CI (Lint + Format Checks)
on:
pull_request:
jobs:
lint:
runs-on: alpine
container: node:20-alpine
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install tools
run: |
apk add --no-cache \
bash \
git \
python3 \
py3-pip \
rust
edge_main="https://dl-cdn.alpinelinux.org/alpine/edge/main"
edge_community="https://dl-cdn.alpinelinux.org/alpine/edge/community"
apk add --no-cache -X "$edge_main" -X "$edge_community" qt6-qtdeclarative-dev-tools || \
apk add --no-cache -X "$edge_main" -X "$edge_community" qt6-qtdeclarative-dev || \
apk add --no-cache -X "$edge_main" -X "$edge_community" qt6-qtdeclarative || \
echo "::warning::qmllint not available"
- name: Python lint
run: |
python3 -m venv .venv
. .venv/bin/activate
pip install --no-cache-dir ruff
if ! ruff check .; then
echo "::warning::ruff reported issues"
fi
- name: JS lint
run: |
if [ -n "$(find . -name "*.js" -o -name "*.jsx" -o -name "*.ts" -o -name "*.tsx" -o -name "*.mjs" -o -name "*.cjs" -print -quit)" ]; then
if [ -f package.json ]; then
npm install --no-audit --no-fund
fi
if [ -f eslint.config.js ] || [ -f eslint.config.mjs ] || [ -f eslint.config.cjs ] || [ -f .eslintrc ] || [ -f .eslintrc.js ] || [ -f .eslintrc.cjs ] || [ -f .eslintrc.json ] || [ -f .eslintrc.yaml ] || [ -f .eslintrc.yml ]; then
if ! npx --yes eslint .; then
echo "::warning::eslint reported issues"
fi
else
echo "No eslint config found"
fi
else
echo "No JS/TS files found"
fi
- name: JS format (prettier)
run: |
if [ -n "$(find . -name "*.js" -o -name "*.jsx" -o -name "*.ts" -o -name "*.tsx" -o -name "*.mjs" -o -name "*.cjs" -print -quit)" ]; then
if ! npx --yes prettier --check "**/*.{js,jsx,ts,tsx,mjs,cjs}" --ignore-path .gitignore; then
echo "::warning::prettier reported issues"
fi
else
echo "No JS/TS files found"
fi
- name: Rust lint
run: |
if [ -f Cargo.toml ]; then
if ! cargo fmt --check; then
echo "::warning::rustfmt reported issues"
fi
else
echo "No Rust project found"
fi
- name: QML lint
run: |
export PATH="$PATH:/usr/lib/qt6/bin:/usr/lib/qt6/libexec"
if command -v qmllint >/dev/null 2>&1; then
if [ -n "$(find . -name "*.qml" -print -quit)" ]; then
if ! find . -name "*.qml" -print0 | xargs -0 qmllint; then
echo "::warning::qmllint reported issues"
fi
else
echo "No QML files found"
fi
else
echo "No qmllint in PATH"
fi
+28
View File
@@ -0,0 +1,28 @@
name: Format (JS/TS)
on:
pull_request:
jobs:
format:
runs-on: alpine
container: node:20-alpine
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install tools
run: |
apk add --no-cache \
git
- name: Prettier
run: |
if [ -n "$(find . -name "*.js" -o -name "*.jsx" -o -name "*.ts" -o -name "*.tsx" -o -name "*.mjs" -o -name "*.cjs" -print -quit)" ]; then
if ! npx --yes prettier --check "**/*.{js,jsx,ts,tsx,mjs,cjs}" --ignore-path .gitignore; then
echo "::warning::prettier reported issues"
fi
else
echo "No JS/TS files found"
fi
+35
View File
@@ -0,0 +1,35 @@
name: Lint (JS/TS)
on:
pull_request:
jobs:
lint:
runs-on: alpine
container: node:20-alpine
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install tools
run: |
apk add --no-cache \
git
- name: ESLint
run: |
if [ -n "$(find . -name "*.js" -o -name "*.jsx" -o -name "*.ts" -o -name "*.tsx" -o -name "*.mjs" -o -name "*.cjs" -print -quit)" ]; then
if [ -f package.json ]; then
npm install --no-audit --no-fund
fi
if [ -f eslint.config.js ] || [ -f eslint.config.mjs ] || [ -f eslint.config.cjs ] || [ -f .eslintrc ] || [ -f .eslintrc.js ] || [ -f .eslintrc.cjs ] || [ -f .eslintrc.json ] || [ -f .eslintrc.yaml ] || [ -f .eslintrc.yml ]; then
if ! npx --yes eslint .; then
echo "::warning::eslint reported issues"
fi
else
echo "No eslint config found"
fi
else
echo "No JS/TS files found"
fi
+29
View File
@@ -0,0 +1,29 @@
name: Lint (Python)
on:
pull_request:
jobs:
lint:
runs-on: alpine
container: node:20-alpine
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install tools
run: |
apk add --no-cache \
git \
python3 \
py3-pip
- name: Ruff
run: |
python3 -m venv .venv
. .venv/bin/activate
pip install --no-cache-dir ruff
if ! ruff check .; then
echo "::warning::ruff reported issues"
fi
+39
View File
@@ -0,0 +1,39 @@
name: Lint (QML)
on:
pull_request:
jobs:
lint:
runs-on: alpine
container: node:20-alpine
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install tools
run: |
apk add --no-cache \
git
edge_main="https://dl-cdn.alpinelinux.org/alpine/edge/main"
edge_community="https://dl-cdn.alpinelinux.org/alpine/edge/community"
apk add --no-cache -X "$edge_main" -X "$edge_community" qt6-qtdeclarative-dev-tools || \
apk add --no-cache -X "$edge_main" -X "$edge_community" qt6-qtdeclarative-dev || \
apk add --no-cache -X "$edge_main" -X "$edge_community" qt6-qtdeclarative || \
echo "::warning::qmllint not available"
- name: QML lint
run: |
export PATH="$PATH:/usr/lib/qt6/bin:/usr/lib/qt6/libexec"
if command -v qmllint >/dev/null 2>&1; then
if [ -n "$(find . -name "*.qml" -print -quit)" ]; then
if ! find . -name "*.qml" -print0 | xargs -0 qmllint; then
echo "::warning::qmllint reported issues"
fi
else
echo "No QML files found"
fi
else
echo "No qmllint in PATH"
fi
+29
View File
@@ -0,0 +1,29 @@
name: Lint (Rust)
on:
pull_request:
jobs:
lint:
runs-on: alpine
container: node:20-alpine
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install tools
run: |
apk add --no-cache \
git \
rust
- name: Rustfmt
run: |
if [ -f Cargo.toml ]; then
if ! cargo fmt --check; then
echo "::warning::rustfmt reported issues"
fi
else
echo "No Rust project found"
fi