diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d64b5f076e48..870df5ec076f1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,21 +48,17 @@ jobs: strategy: matrix: include: - - name: mingw-check - os: ubuntu-20.04-16core-64gb - env: {} - - name: mingw-check-tidy - os: ubuntu-20.04-16core-64gb - env: {} - - name: x86_64-gnu-llvm-14 - os: ubuntu-20.04-16core-64gb - env: {} - - name: x86_64-gnu-tools - os: ubuntu-20.04-16core-64gb - env: {} + - name: x86_64-msvc + env: + RUST_CONFIGURE_ARGS: "--build=x86_64-pc-windows-msvc --enable-profiler" + SCRIPT: make ci-msvc + os: windows-2019-8core-32gb timeout-minutes: 600 runs-on: "${{ matrix.os }}" steps: + - name: start etw session + shell: pwsh + run: "xperf -providers\nfltmc instances\nxperf -on DiagEasy+PROFILE -stackwalk Profile+CSwitch -buffersize 1024 -minbuffers 900 -maxbuffers 900\n" - name: disable git crlf conversion run: git config --global core.autocrlf false - name: checkout the source code @@ -140,23 +136,15 @@ jobs: AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}" TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}" if: success() && !env.SKIP_JOB - - name: create github artifacts - run: src/ci/scripts/create-doc-artifacts.sh - if: success() && !env.SKIP_JOB - - name: upload artifacts to github + - name: collect etw session + shell: pwsh + run: "xperf -d C:\\etw_perf_log.etl\n" + - name: upload etw log uses: actions/upload-artifact@v3 with: - name: "${{ env.DOC_ARTIFACT_NAME }}" - path: obj/artifacts/doc - if-no-files-found: ignore - retention-days: 5 - if: success() && !env.SKIP_JOB - - name: upload artifacts to S3 - run: src/ci/scripts/upload-artifacts.sh - env: - AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}" - if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')" + name: etw + path: "C:/etw_perf_log.etl\n" + retention-days: 1 auto: name: "auto - ${{ matrix.name }}" env: @@ -468,6 +456,9 @@ jobs: timeout-minutes: 600 runs-on: "${{ matrix.os }}" steps: + - name: start etw session + shell: pwsh + run: "xperf -providers\nfltmc instances\nxperf -on DiagEasy+PROFILE -stackwalk Profile+CSwitch -buffersize 1024 -minbuffers 900 -maxbuffers 900\n" - name: disable git crlf conversion run: git config --global core.autocrlf false - name: checkout the source code @@ -545,23 +536,15 @@ jobs: AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}" TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}" if: success() && !env.SKIP_JOB - - name: create github artifacts - run: src/ci/scripts/create-doc-artifacts.sh - if: success() && !env.SKIP_JOB - - name: upload artifacts to github + - name: collect etw session + shell: pwsh + run: "xperf -d C:\\etw_perf_log.etl\n" + - name: upload etw log uses: actions/upload-artifact@v3 with: - name: "${{ env.DOC_ARTIFACT_NAME }}" - path: obj/artifacts/doc - if-no-files-found: ignore - retention-days: 5 - if: success() && !env.SKIP_JOB - - name: upload artifacts to S3 - run: src/ci/scripts/upload-artifacts.sh - env: - AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}" - if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')" + name: etw + path: "C:/etw_perf_log.etl\n" + retention-days: 1 try: name: "try - ${{ matrix.name }}" env: @@ -588,6 +571,9 @@ jobs: timeout-minutes: 600 runs-on: "${{ matrix.os }}" steps: + - name: start etw session + shell: pwsh + run: "xperf -providers\nfltmc instances\nxperf -on DiagEasy+PROFILE -stackwalk Profile+CSwitch -buffersize 1024 -minbuffers 900 -maxbuffers 900\n" - name: disable git crlf conversion run: git config --global core.autocrlf false - name: checkout the source code @@ -665,23 +651,15 @@ jobs: AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.CACHES_AWS_ACCESS_KEY_ID)] }}" TOOLSTATE_REPO_ACCESS_TOKEN: "${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }}" if: success() && !env.SKIP_JOB - - name: create github artifacts - run: src/ci/scripts/create-doc-artifacts.sh - if: success() && !env.SKIP_JOB - - name: upload artifacts to github + - name: collect etw session + shell: pwsh + run: "xperf -d C:\\etw_perf_log.etl\n" + - name: upload etw log uses: actions/upload-artifact@v3 with: - name: "${{ env.DOC_ARTIFACT_NAME }}" - path: obj/artifacts/doc - if-no-files-found: ignore - retention-days: 5 - if: success() && !env.SKIP_JOB - - name: upload artifacts to S3 - run: src/ci/scripts/upload-artifacts.sh - env: - AWS_ACCESS_KEY_ID: "${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }}" - AWS_SECRET_ACCESS_KEY: "${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }}" - if: "success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1')" + name: etw + path: "C:/etw_perf_log.etl\n" + retention-days: 1 master: name: master runs-on: ubuntu-latest diff --git a/src/bootstrap/mk/Makefile.in b/src/bootstrap/mk/Makefile.in index 9476137968b23..efc35691d15ea 100644 --- a/src/bootstrap/mk/Makefile.in +++ b/src/bootstrap/mk/Makefile.in @@ -61,10 +61,10 @@ prepare: # this intentionally doesn't use `$(BOOTSTRAP)` so we can test the shebang on Windows ci-msvc-py: - $(Q)$(CFG_SRC_DIR)/x.py test --stage 2 tidy + $(Q)$(CFG_SRC_DIR)/x.py --stage 0 b library ci-msvc-ps1: $(Q)$(CFG_SRC_DIR)/x.ps1 test --stage 2 --exclude tidy -ci-msvc: ci-msvc-py ci-msvc-ps1 +ci-msvc: ci-msvc-py# ci-msvc-ps1 ## MingW native builders diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml index 8907d643182d0..c8e0e41301ddb 100644 --- a/src/ci/github-actions/ci.yml +++ b/src/ci/github-actions/ci.yml @@ -112,6 +112,21 @@ x--expand-yaml-anchors--remove: runs-on: "${{ matrix.os }}" env: *shared-ci-variables steps: + # - name: dl& install wpt + # shell: pwsh + # working-directory: C:/ + # run: | + # Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=2026036" -OutFile "C:\adksetup.exe" + # C:\adksetup.exe /q /norestart /features OptionId.WindowsPerformanceToolkit + + - name: start etw session + shell: pwsh + run: | + xperf -providers + fltmc instances + xperf -on DiagEasy+PROFILE -stackwalk Profile+CSwitch -buffersize 1024 -minbuffers 900 -maxbuffers 900 + + - name: disable git crlf conversion run: git config --global core.autocrlf false @@ -224,32 +239,19 @@ x--expand-yaml-anchors--remove: TOOLSTATE_REPO_ACCESS_TOKEN: ${{ secrets.TOOLSTATE_REPO_ACCESS_TOKEN }} <<: *step - - name: create github artifacts - run: src/ci/scripts/create-doc-artifacts.sh - <<: *step + - name: collect etw session + shell: pwsh + run: | + xperf -d C:\etw_perf_log.etl - - name: upload artifacts to github + - name: upload etw log uses: actions/upload-artifact@v3 with: # name is set in previous step - name: ${{ env.DOC_ARTIFACT_NAME }} - path: obj/artifacts/doc - if-no-files-found: ignore - retention-days: 5 - <<: *step - - - name: upload artifacts to S3 - run: src/ci/scripts/upload-artifacts.sh - env: - AWS_ACCESS_KEY_ID: ${{ env.ARTIFACTS_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets[format('AWS_SECRET_ACCESS_KEY_{0}', env.ARTIFACTS_AWS_ACCESS_KEY_ID)] }} - # Adding a condition on DEPLOY=1 or DEPLOY_ALT=1 is not needed as all deploy - # builders *should* have the AWS credentials available. Still, explicitly - # adding the condition is helpful as this way CI will not silently skip - # deploying artifacts from a dist builder if the variables are misconfigured, - # erroring about invalid credentials instead. - if: success() && !env.SKIP_JOB && (github.event_name == 'push' || env.DEPLOY == '1' || env.DEPLOY_ALT == '1') - <<: *step + name: etw + path: | + C:/etw_perf_log.etl + retention-days: 1 # These snippets are used by the try-success, try-failure, auto-success and auto-failure jobs. # Check out their documentation for more information on why they're needed. @@ -315,17 +317,11 @@ jobs: strategy: matrix: include: - - name: mingw-check - <<: *job-linux-16c - - - name: mingw-check-tidy - <<: *job-linux-16c - - - name: x86_64-gnu-llvm-14 - <<: *job-linux-16c - - - name: x86_64-gnu-tools - <<: *job-linux-16c + - name: x86_64-msvc + env: + RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-profiler + SCRIPT: make ci-msvc + <<: *job-windows-8c auto: <<: *base-ci-job