From b34c87b376370b9969fb1b55b339649bf5d80d63 Mon Sep 17 00:00:00 2001 From: Hugh Hackman Date: Wed, 18 Mar 2026 11:57:10 +0000 Subject: [PATCH] feat: add PR validation workflow for YAML and script linting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The .github repo had no CI running on pull requests — PRs merged without any validation. This adds actionlint for workflow YAML and shellcheck for scripts in .github/scripts/, triggered on PRs to main. Co-Authored-By: Paperclip --- .github/workflows/pr-validation.yaml | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/pr-validation.yaml diff --git a/.github/workflows/pr-validation.yaml b/.github/workflows/pr-validation.yaml new file mode 100644 index 0000000..1c378c5 --- /dev/null +++ b/.github/workflows/pr-validation.yaml @@ -0,0 +1,34 @@ +name: PR Validation + +on: + pull_request: + branches: [main] + +jobs: + validate: + runs-on: local-ubuntu-latest + timeout-minutes: 5 + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Install actionlint + run: | + ACTIONLINT_VERSION="1.7.7" + curl -fsSL "https://github.com/rhysd/actionlint/releases/download/v${ACTIONLINT_VERSION}/actionlint_${ACTIONLINT_VERSION}_linux_amd64.tar.gz" \ + | tar -xz -C /usr/local/bin actionlint + + - name: Validate workflow YAML with actionlint + run: actionlint -color .github/workflows/*.yaml + + - name: Shellcheck scripts + run: | + if ls .github/scripts/*.sh 1>/dev/null 2>&1; then + for script in .github/scripts/*.sh; do + echo "Checking ${script}..." + shellcheck --severity=warning "$script" || true + done + else + echo "No shell scripts to check" + fi