diff --git a/.gitattributes b/.gitattributes index 96a0d0a..36ad0f5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13,7 +13,6 @@ LICENSE text eol=lf -.github/ export-ignore .gitignore export-ignore .gitattributes export-ignore SECURITY.md export-ignore diff --git a/.github/.module b/.github/.module new file mode 100644 index 0000000..e69de29 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fd4848b..dc623ad 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -21,6 +21,28 @@ concurrency: cancel-in-progress: true jobs: + layout-marker: + name: Repo layout marker + runs-on: ubuntu-latest + timeout-minutes: 5 + permissions: + contents: read + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 1 + persist-credentials: false + - name: Validate repo layout marker + shell: bash + run: | + set -euo pipefail + count=0 + [ -f .github/.script ] && count=$((count+1)) + [ -f .github/.module ] && count=$((count+1)) + if [ "$count" -ne 1 ]; then + echo "::error::Repo layout marker invalid: exactly one of .github/.script or .github/.module must exist (found $count)." + exit 1 + fi actionlint: name: actionlint runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index 73c1e95..e09f04a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,8 @@ # CI and repo metadata !/.github/ !/.github/CODEOWNERS +!/.github/.script +!/.github/.module !/.github/workflows/ !/.github/workflows/*.yaml