fix(talk): fix ensure permissions on first execution of Talk Mode in … #16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Workflow Sanity | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" | |
| jobs: | |
| no-tabs: | |
| if: github.event_name != 'workflow_dispatch' | |
| runs-on: blacksmith-16vcpu-ubuntu-2404 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Fail on tabs in workflow files | |
| run: | | |
| python - <<'PY' | |
| from __future__ import annotations | |
| import pathlib | |
| import sys | |
| root = pathlib.Path(".github/workflows") | |
| bad: list[str] = [] | |
| for path in sorted(root.rglob("*.yml")): | |
| if b"\t" in path.read_bytes(): | |
| bad.append(str(path)) | |
| for path in sorted(root.rglob("*.yaml")): | |
| if b"\t" in path.read_bytes(): | |
| bad.append(str(path)) | |
| if bad: | |
| print("Tabs found in workflow file(s):") | |
| for path in bad: | |
| print(f"- {path}") | |
| sys.exit(1) | |
| PY | |
| actionlint: | |
| if: github.event_name != 'workflow_dispatch' | |
| runs-on: blacksmith-16vcpu-ubuntu-2404 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Install actionlint | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| ACTIONLINT_VERSION="1.7.11" | |
| archive="actionlint_${ACTIONLINT_VERSION}_linux_amd64.tar.gz" | |
| base_url="https://github.com/rhysd/actionlint/releases/download/v${ACTIONLINT_VERSION}" | |
| # GitHub release downloads occasionally return transient 5xx responses. | |
| # Retry all curl errors here so workflow-sanity does not fail closed on | |
| # a one-off release edge outage. | |
| curl --retry 5 --retry-delay 2 --retry-all-errors -sSfL -o "${archive}" "${base_url}/${archive}" | |
| curl --retry 5 --retry-delay 2 --retry-all-errors -sSfL -o checksums.txt "${base_url}/actionlint_${ACTIONLINT_VERSION}_checksums.txt" | |
| grep " ${archive}\$" checksums.txt | sha256sum -c - | |
| tar -xzf "${archive}" actionlint | |
| sudo install -m 0755 actionlint /usr/local/bin/actionlint | |
| - name: Lint workflows | |
| run: actionlint | |
| - name: Disallow direct inputs interpolation in composite run blocks | |
| run: python3 scripts/check-composite-action-input-interpolation.py | |
| - name: Disallow tracked merge conflict markers | |
| run: node scripts/check-no-conflict-markers.mjs | |
| generated-doc-baselines: | |
| if: github.event_name == 'workflow_dispatch' | |
| runs-on: blacksmith-16vcpu-ubuntu-2404 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node environment | |
| uses: ./.github/actions/setup-node-env | |
| with: | |
| install-bun: "false" | |
| use-sticky-disk: "false" | |
| - name: Check config docs drift statefile | |
| run: pnpm config:docs:check | |
| - name: Check plugin SDK API baseline drift | |
| run: pnpm plugin-sdk:api:check |