name: "Bundle: Caching checks"
description: "The CodeQL bundle should be cached within the toolcache"
versions:
  - linked
operatingSystems:
  - macos
  - ubuntu
  - windows
steps:
  - name: Remove CodeQL from toolcache
    uses: actions/github-script@v8
    with:
      script: |
        const fs = require('fs');
        const path = require('path');
        const codeqlPath = path.join(process.env['RUNNER_TOOL_CACHE'], 'CodeQL');
        fs.rmdirSync(codeqlPath, { recursive: true });
  - name: Install @actions/tool-cache
    run: npm install @actions/tool-cache
  - name: Check toolcache does not contain CodeQL
    uses: actions/github-script@v8
    with:
      script: |
        const toolcache = require('@actions/tool-cache');
        const allCodeqlVersions = toolcache.findAllVersions('CodeQL');
        if (allCodeqlVersions.length !== 0) {
          throw new Error(`CodeQL should not be found in the toolcache, but found ${allCodeqlVersions}`);
        }
        console.log('No versions of CodeQL found in the toolcache');
  - id: init
    uses: ./../action/init
    with:
      languages: javascript
      tools: ${{ steps.prepare-test.outputs.tools-url }}
  - uses: ./../action/analyze
    with:
      output: ${{ runner.temp }}/results
      upload-database: false
  - name: Check CodeQL is installed within the toolcache
    uses: actions/github-script@v8
    with:
      script: |
        const toolcache = require('@actions/tool-cache');
        const allCodeqlVersions = toolcache.findAllVersions('CodeQL');
        console.log(`Found CodeQL versions: ${allCodeqlVersions}`);
        if (allCodeqlVersions.length === 0) {
          throw new Error('CodeQL not found in toolcache');
        }
        if (allCodeqlVersions.length > 1) {
          throw new Error('Multiple CodeQL versions found in toolcache');
        }
