name: Core validation on: push: branches: - main pull_request: workflow_dispatch: permissions: contents: read concurrency: group: core-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: core: name: Linux core gate runs-on: ubuntu-24.04 timeout-minutes: 15 env: DOTNET_CLI_TELEMETRY_OPTOUT: "1" DOTNET_NOLOGO: "true" NUGET_XMLDOC_MODE: skip PYTHONUTF8: "1" steps: - name: Check out repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Set up Python 3.11 uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: "3.11" architecture: x64 - name: Set up .NET SDK uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0 with: global-json-file: global.json - name: Report toolchain run: | python --version dotnet --version - name: Run asset-independent validation run: python -X utf8 tools/validate.py --level core - name: Upload failure logs if: failure() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: core-validation-${{ github.run_id }}-${{ github.run_attempt }} path: build/validation/** if-no-files-found: ignore retention-days: 7