diff --git a/.github/workflows/__local-bundle.yml b/.github/workflows/__local-bundle.yml index 159d8c455..3fc89f381 100644 --- a/.github/workflows/__local-bundle.yml +++ b/.github/workflows/__local-bundle.yml @@ -32,6 +32,11 @@ on: description: The version of Python to install required: false default: '3.13' + dotnet-version: + type: string + description: The version of .NET to install + required: false + default: 9.x workflow_call: inputs: go-version: @@ -44,6 +49,11 @@ on: description: The version of Python to install required: false default: '3.13' + dotnet-version: + type: string + description: The version of .NET to install + required: false + default: 9.x defaults: run: shell: bash @@ -85,6 +95,10 @@ jobs: uses: actions/setup-python@v6 with: python-version: ${{ inputs.python-version || '3.13' }} + - name: Install .NET + uses: actions/setup-dotnet@v5 + with: + dotnet-version: ${{ inputs.dotnet-version || '9.x' }} - name: Fetch latest CodeQL bundle run: | wget https://github.com/github/codeql-action/releases/latest/download/codeql-bundle-linux64.tar.zst diff --git a/pr-checks/checks/local-bundle.yml b/pr-checks/checks/local-bundle.yml index 449dcbbb1..c0930772e 100644 --- a/pr-checks/checks/local-bundle.yml +++ b/pr-checks/checks/local-bundle.yml @@ -3,6 +3,7 @@ description: "Tests using a CodeQL bundle from a local file rather than a URL" versions: ["linked"] installGo: true installPython: true +installDotNet: true steps: - name: Fetch latest CodeQL bundle run: | diff --git a/pr-checks/sync.py b/pr-checks/sync.py index f247f3824..77816be76 100755 --- a/pr-checks/sync.py +++ b/pr-checks/sync.py @@ -204,6 +204,25 @@ for file in sorted((this_dir / 'checks').glob('*.yml')): } }) + installDotNet = is_truthy(checkSpecification.get('installDotNet', '')) + + if installDotNet: + baseDotNetVersionExpr = '9.x' + workflowInputs['dotnet-version'] = { + 'type': 'string', + 'description': 'The version of .NET to install', + 'required': False, + 'default': baseDotNetVersionExpr, + } + + steps.append({ + 'name': 'Install .NET', + 'uses': 'actions/setup-dotnet@v5', + 'with': { + 'dotnet-version': '${{ inputs.dotnet-version || \'' + baseDotNetVersionExpr + '\' }}' + } + }) + # If container initialisation steps are present in the check specification, # make sure to execute them first. if 'container' in checkSpecification and 'container-init-steps' in checkSpecification: