From e8fd120eade3d0bb1361e55e8db99ecaa16fd67b Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Wed, 29 Jul 2026 17:49:52 +0000 Subject: [PATCH] add static analysis action --- .gitea/workflows/static_go.yaml | 33 +++++++++++++++++++ .../workflows/{lint.yaml => style_web.yaml} | 33 ++++++------------- Makefile | 12 ++++--- 3 files changed, 51 insertions(+), 27 deletions(-) create mode 100644 .gitea/workflows/static_go.yaml rename .gitea/workflows/{lint.yaml => style_web.yaml} (59%) diff --git a/.gitea/workflows/static_go.yaml b/.gitea/workflows/static_go.yaml new file mode 100644 index 0000000..0c641c5 --- /dev/null +++ b/.gitea/workflows/static_go.yaml @@ -0,0 +1,33 @@ +name: Static Analysis -- Golang +run-name: 'Static Analysis -- Golang -- ${{ gitea.repository }} ${{ gitea.ref_name }} ${{ gitea.sha }}' +on: + push: + branches: + - '*' + +jobs: + lint-check: + runs-on: ubuntu-latest + steps: + - name: Check Out Repository + uses: actions/checkout@v4 + with: + submodules: 'true' + + - name: Initialize Runner + uses: actions/setup-go@v7 + with: + go-version-file: 'go.mod' + + - name: Initialize Go + run: make build-web && go get . + + - name: Run Go Vet + id: static_govet + if: always() + run: go vet ./... + + - name: Verify Static Analysis + if: > + steps.static_govet.outcome != 'success' + run: exit 1 \ No newline at end of file diff --git a/.gitea/workflows/lint.yaml b/.gitea/workflows/style_web.yaml similarity index 59% rename from .gitea/workflows/lint.yaml rename to .gitea/workflows/style_web.yaml index 5d1306d..0316ed6 100644 --- a/.gitea/workflows/lint.yaml +++ b/.gitea/workflows/style_web.yaml @@ -1,9 +1,9 @@ -name: ProxmoxAAS-Dashboard Code Style Check -run-name: Code style check on ${{ gitea.repository }} ${{ gitea.ref_name }} ${{ gitea.sha }} +name: Code Style -- Web Components +run-name: 'Code Style -- Web Components -- ${{ gitea.repository }} ${{ gitea.ref_name }} ${{ gitea.sha }}' on: push: branches: - - "*" + - '*' jobs: lint-check: @@ -34,12 +34,12 @@ jobs: - name: Run HTMLValidate id: html_lint - run: npx html-validate --config dev_config/.htmlvalidate.json "web/html/**/*" + run: npx html-validate --config dev_config/.htmlvalidate.json 'web/html/**/*' - name: Run Stylelint id: style_lint if: always() - run: npx stylelint --config dev_config/.stylelintrc.json --formatter verbose --fix "web/css/**/*.css" + run: npx stylelint --config dev_config/.stylelintrc.json --formatter verbose --fix 'web/css/**/*.css' - name: Run ESLint id: js_lint @@ -49,21 +49,8 @@ jobs: run: npx eslint --config dev_config/eslint.config.mjs --fix web/scripts/ - name: Verify Linters - if: always() - run: | - FAILED=0 - if [ "${{ steps.html_lint.outcome }}" != "success" ]; then - echo "HTML Linter failed" - FAILED=1 - fi - if [ "${{ steps.style_lint.outcome }}" != "success" ]; then - echo "Style Linter failed" - FAILED=1 - fi - if [ "${{ steps.js_lint.outcome }}" != "success" ]; then - echo "JS Linter failed" - FAILED=1 - fi - if [ $FAILED -eq 1 ]; then - exit 1 - fi \ No newline at end of file + if: > + steps.html_lint.outcome != 'success' || + steps.style_lint.outcome != 'success' || + steps.js_lint.outcome != 'success' + run: exit 1 \ No newline at end of file diff --git a/Makefile b/Makefile index 1dcf62c..8f95981 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,17 @@ .PHONY: build test clean wfa-js -build: clean build-wfa-js +build: clean ensure-dist build-web build-wfa-js @echo "======================== Building Binary =======================" - mkdir -p dist # resolve symbolic links in web by copying it into dist/web/ - cp -rL web/ dist/web/ CGO_ENABLED=0 go build -tags release -ldflags="-s -w" -v -o dist/ . -build-wfa-js: +ensure-dist: + mkdir -p dist + +build-web: ensure-dist + cp -rL web/ dist/web/ + +build-wfa-js: ensure-dist $(MAKE) -C WFA-JS cp -f WFA-JS/dist/* web/modules