From eb327aab0e2c4c52ca9589755d2f1492743b1677 Mon Sep 17 00:00:00 2001 From: kellervater Date: Thu, 10 Apr 2025 23:03:21 +0200 Subject: [PATCH] ci: linting --- .github/workflows/lint.yml | 30 +++++++++++++++++ .gitignore | 2 +- .pre-commit-config.yaml | 39 ++++++++++++++++++++++ .tool-versions | 1 + Makefile | 24 +++++++++++++ README.md | Bin 2718 -> 2921 bytes models/README.md | 2 +- models/rackmount_ears/rackmount_ears.scad | 18 +++++----- renovate.json5 | 4 +-- 9 files changed, 107 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/lint.yml create mode 100644 .pre-commit-config.yaml create mode 100644 .tool-versions create mode 100644 Makefile diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..1de46f4 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,30 @@ +--- +name: Basic Linting + +on: + pull_request: + branches: ["**"] + push: + branches: [main] + +jobs: + lint: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + # - uses: asdf-vm/actions/setup@v3 + # - name: Install tooling required for pre-commit + # run: | + # for tool in actionlint shellcheck terraform terraform-docs tflint ; do + # asdf plugin add "${tool}" + # asdf install "${tool}" + # done + # moving actionlint to centralized composite action + - uses: camunda/infra-global-github-actions/actionlint@main + with: + version: '1.7.4' + + - uses: pre-commit/action@v3.0.1 + with: + extra_args: --all-files --verbose diff --git a/.gitignore b/.gitignore index 9352866..ca63bfd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ *.3mf -*.stl \ No newline at end of file +*.stl diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..4449591 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,39 @@ +--- +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-added-large-files + args: + - --maxkb=1000 +- repo: https://github.com/detailyang/pre-commit-shell + rev: v1.0.6 + hooks: + - id: shell-lint + args: [--external-sources] +- repo: https://github.com/adrienverge/yamllint + rev: v1.37.0 + hooks: + - id: yamllint + args: ['-c', '.lint/yamllint/.yamllint'] +- repo: https://github.com/rhysd/actionlint + rev: v1.7.7 + hooks: + - id: actionlint +- repo: https://github.com/psf/black + rev: 25.1.0 + hooks: + - id: black + args: + [ + "--line-length=121" + ] +- repo: https://github.com/renovatebot/pre-commit-hooks + rev: 39.227.1 + hooks: + - id: renovate-config-validator + args: ["--strict"] + language_version: 20.18.0 # workaround till https://github.com/renovatebot/pre-commit-hooks/issues/2460 is fixed +... diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..d64c207 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +pre-commit 4.2.0 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c7199dd --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +.PHONY: help + +help: + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) + +.DEFAULT_GOAL := help + + +.PHONY: asdf-plugins +asdf-plugins: ## Install asdf plugins + # + # Add plugins from .tool-versions file within the repo. + @# If the plugin is already installed asdf exits with 2, so grep is used to handle that. + @for plugin in $$(awk '{print $$1}' .tool-versions); do \ + asdf plugin add $${plugin} 2>&1 | (grep "already added" && exit 0); \ + done + # Update all plugins to their latest version + @asdf plugin update --all + +.PHONY: asdf-install +asdf-install: asdf-plugins ## Install tools with asdf + # + # Install tools via asdf. + @asdf install \ No newline at end of file diff --git a/README.md b/README.md index e8886b686b8d528fe07e59dabe298dfede001f27..fe83baf3ba0aaecc1dce93128634a7bf8c3f5baf 100644 GIT binary patch delta 196 zcmbOy`ciB|5zFQh7BR-jJ**1$$_yZ=z>v$3$dJvD%D~IO#o)=1$56~r0u;#sLWGaDp8rZA*!Ue5ZQksT^Hc_N4K<^}Bkm>9VLB RACK_WIDTH_10_INCH_INNER || autosize == false && rack_size == 19 ? - (RACK_WIDTH_19_INCH - device_width) / 2 : +function get_ear_width(device_width) = + device_width > RACK_WIDTH_10_INCH_INNER || autosize == false && rack_size == 19 ? + (RACK_WIDTH_19_INCH - device_width) / 2 : (RACK_WIDTH_10_INCH_OUTER - device_width) / 2 ; rack_ear_width = get_ear_width(device_width); @@ -83,8 +83,8 @@ function get_bore_depth(device_bore_margin_horizontal,device_bore_columns) = // Calculate the depth of the ear depth=device_bore_distance_front*2+get_bore_depth(device_bore_margin_horizontal,device_bore_columns); device_screw_alignment_vertical= - center_device_bore_alignment ? - RACK_HEIGHT / 2 : + center_device_bore_alignment ? + RACK_HEIGHT / 2 : device_bore_margin_vertical / 2 + device_bore_distance_bottom ; device_screw_alignment = [strength,depth/2,device_screw_alignment_vertical]; @@ -99,8 +99,8 @@ module base_ear(width,strength,height) { } module screws_countersunk(length, diameter_head, length_head, diameter_shaft) { - translate(device_screw_alignment) - yrot(-90) + translate(device_screw_alignment) + yrot(-90) grid_copies(spacing=[device_bore_margin_vertical,device_bore_margin_horizontal],n=[device_bore_rows, device_bore_columns]) union() { cylinder(h=length_head, r1=diameter_head/2, r2=diameter_shaft/2); diff --git a/renovate.json5 b/renovate.json5 index 0d2bf2b..aad7ce2 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -34,7 +34,7 @@ ], } ], - + customManagers: [ // for asdf-vm.org tool versions { @@ -54,4 +54,4 @@ versioningTemplate: "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", }, ], -} \ No newline at end of file +}