diff --git a/.github/workflows/validate-org-template.yml b/.github/workflows/validate-org-template.yml index 2fc55e8..c1b09a7 100644 --- a/.github/workflows/validate-org-template.yml +++ b/.github/workflows/validate-org-template.yml @@ -9,13 +9,23 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v4 + # Canonical validator script lives in molecule-ci, fetched fresh on + # every run. The previous setup expected `.molecule-ci/scripts/` to + # be vendored INTO each org-template repo, which drifted across the + # 5 org-template repos as the validator evolved. Single source of + # truth eliminates that drift class entirely. Mirrors the same + # pattern already used by validate-workspace-template.yml. + - uses: actions/checkout@v4 + with: + repository: Molecule-AI/molecule-ci + path: .molecule-ci-canonical - uses: actions/setup-python@v5 with: python-version: "3.11" cache: "pip" - cache-dependency-path: .molecule-ci/scripts/requirements.txt + cache-dependency-path: .molecule-ci-canonical/.molecule-ci/scripts/requirements.txt - run: pip install pyyaml -q - - run: python3 .molecule-ci/scripts/validate-org-template.py + - run: python3 .molecule-ci-canonical/.molecule-ci/scripts/validate-org-template.py - name: Check for secrets run: | python3 - << 'PYEOF' @@ -32,7 +42,7 @@ jobs: re.compile(r'''ghp_[a-zA-Z0-9]{36,}'''), re.compile(r'''sk-ant-[a-zA-Z0-9]{50,}'''), ] - SKIP_DIRS = {'.molecule-ci', '.git', 'node_modules', '__pycache__'} + SKIP_DIRS = {'.molecule-ci', '.molecule-ci-canonical', '.git', 'node_modules', '__pycache__'} EXTENSIONS = {'.yaml', '.yml', '.md', '.py', '.sh'} def is_false_positive(line): diff --git a/.github/workflows/validate-plugin.yml b/.github/workflows/validate-plugin.yml index 102316f..3d692cb 100644 --- a/.github/workflows/validate-plugin.yml +++ b/.github/workflows/validate-plugin.yml @@ -9,13 +9,23 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v4 + # Canonical validator script lives in molecule-ci, fetched fresh on + # every run. The previous setup expected `.molecule-ci/scripts/` to + # be vendored INTO each plugin repo, which drifted across the + # 20+ plugin repos as the validator evolved. Single source of + # truth eliminates that drift class entirely. Mirrors the same + # pattern already used by validate-workspace-template.yml. + - uses: actions/checkout@v4 + with: + repository: Molecule-AI/molecule-ci + path: .molecule-ci-canonical - uses: actions/setup-python@v5 with: python-version: "3.11" cache: "pip" - cache-dependency-path: .molecule-ci/scripts/requirements.txt + cache-dependency-path: .molecule-ci-canonical/.molecule-ci/scripts/requirements.txt - run: pip install pyyaml -q - - run: python3 .molecule-ci/scripts/validate-plugin.py + - run: python3 .molecule-ci-canonical/.molecule-ci/scripts/validate-plugin.py - name: Check for secrets run: | python3 - << 'PYEOF' @@ -32,7 +42,7 @@ jobs: re.compile(r'''ghp_[a-zA-Z0-9]{36,}'''), re.compile(r'''sk-ant-[a-zA-Z0-9]{50,}'''), ] - SKIP_DIRS = {'.molecule-ci', '.git', 'node_modules', '__pycache__'} + SKIP_DIRS = {'.molecule-ci', '.molecule-ci-canonical', '.git', 'node_modules', '__pycache__'} EXTENSIONS = {'.yaml', '.yml', '.md', '.py', '.sh'} def is_false_positive(line):