# .forgejo/workflows/lint-and-validate.yml name: Lint and Validate on: push: paths: - '**/*.sh' pull_request: paths: - '**/*.sh' jobs: lint-and-validate: runs-on: docker # Ensures the job runs in a Docker-based environment container: image: debian:bullseye # Use a lightweight and stable Debian base image steps: - name: Checkout Code uses: https://code.forgejo.org/actions/checkout@v4 - name: Install ShellCheck run: | apt-get update && apt-get install -y shellcheck - name: Lint Bash Scripts run: | echo "Linting Bash scripts..." find . -name '*.sh' -print0 | xargs -0 shellcheck - name: Check Commit Messages run: | echo "Checking commit message format..." if ! git log -1 --pretty=%B | grep -Eq '^(feat|fix|chore|docs|style|refactor|test|perf):'; then echo "Commit message does not follow the conventional format: : " exit 1 fi