name: Test and lint workflows on: push: paths: - .github/workflows/* - bundle/docker/linux/*.sh - devscripts/setup_variables.py - devscripts/setup_variables_tests.py - devscripts/utils.py pull_request: paths: - .github/workflows/* - bundle/docker/linux/*.sh - devscripts/setup_variables.py - devscripts/setup_variables_tests.py - devscripts/utils.py permissions: contents: read env: ACTIONLINT_VERSION: "1.7.8" ACTIONLINT_SHA256SUM: be92c2652ab7b6d08425428797ceabeb16e31a781c07bc388456b4e592f3e36a ACTIONLINT_REPO: https://github.com/rhysd/actionlint jobs: check: name: Check workflows runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: actions/setup-python@v6 with: python-version: "3.10" # Keep this in sync with release.yml's prepare job - name: Install requirements env: ACTIONLINT_TARBALL: ${{ format('actionlint_{0}_linux_amd64.tar.gz', env.ACTIONLINT_VERSION) }} run: | python -m devscripts.install_deps --only-optional-groups --include-group test sudo apt -y install shellcheck python -m pip install -U pyflakes curl -LO "${ACTIONLINT_REPO}/releases/download/v${ACTIONLINT_VERSION}/${ACTIONLINT_TARBALL}" printf '%s %s' "${ACTIONLINT_SHA256SUM}" "${ACTIONLINT_TARBALL}" | sha256sum -c - tar xvzf "${ACTIONLINT_TARBALL}" actionlint chmod +x actionlint - name: Run actionlint run: | ./actionlint -color - name: Check Docker shell scripts run: | shellcheck bundle/docker/linux/*.sh - name: Test GHA devscripts run: | pytest -Werror --tb=short --color=yes devscripts/setup_variables_tests.py