DO NOT REVIEW [draft wip] - 1es runners #12784
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright (c) eBPF for Windows contributors | |
# SPDX-License-Identifier: MIT | |
# This is the top-level workflow that runs on each pull request and push to main. | |
# It invokes other jobs to perform builds and run tests. | |
# All jobs run in parallel, using build artifacts to synchronize jobs. | |
# | |
# If you add or remove any tests that use reusable-test.yml on a pull request, | |
# you must update codecov.yml to match. | |
name: CI/CD | |
on: | |
# Run on a daily schedule to perform the full set of tests. | |
schedule: | |
- cron: '00 8 * * *' | |
# Run on pull request to validate code changes. | |
pull_request: | |
merge_group: | |
# Permit manual runs of the workflow. | |
workflow_dispatch: | |
# Run on push so we can capture the baseline code coverage. | |
push: | |
branches: [ main ] | |
concurrency: | |
# Cancel any in-progress instance of this workflow (CI/CD) for the same PR. | |
# Allow running concurrently with any commits on any other branch. | |
# Using GITHUB_REF instead of GITHUB_SHA allows parallel runs on | |
# different branches with the same HEAD commit. | |
group: cicd-${{ github.event.schedule || github.event.pull_request.number || github.event.after || github.ref }} | |
cancel-in-progress: true | |
permissions: | |
id-token: write # Required to log in to Azure. | |
contents: read | |
checks: read # Required by reusable-test.yml to check build status. | |
security-events: write # Required by codeql task. | |
issues: write # Required to create issues. | |
jobs: | |
# Jobs to run on pull, push, and schedule. | |
# --------------------------------------------------------------------------- | |
# Perform the regular build. | |
# regular: | |
# # Always run this job. | |
# if: github.event_name == 'schedule' || github.event_name == 'pull_request' || github.event_name == 'push' || github.event_name == 'merge_group' || github.event_name == 'workflow_dispatch' | |
# uses: ./.github/workflows/reusable-build.yml | |
# with: | |
# ref: ${{ github.ref }} | |
# repository: ${{ github.repository }} | |
# build_artifact: Build-x64 | |
# generate_release_package: true | |
# build_msi: true | |
# build_nuget: true | |
# build_options: /p:ReleaseJIT='True' | |
# configurations: '["Debug", "Release"]' | |
# Run the unit tests in GitHub. | |
unit_tests: | |
# Always run this job. | |
# needs: regular | |
if: github.event_name == 'pull_request' || github.event_name == 'push' || github.event_name == 'merge_group' | |
uses: ./.github/workflows/reusable-test.yml | |
with: | |
name: unit_tests | |
pre_test: appverif -enable Exceptions Handles Locks Memory SRWLock Threadpool TLS DangerousAPIs DirtyStacks TimeRollOver -for unit_tests.exe | |
# Exclude [processes] test that CodeCoverage can't work with. | |
test_command: .\unit_tests.exe -d yes ~[processes] | |
build_artifact: Build-x64 | |
environment: windows-2022 | |
code_coverage: true | |
gather_dumps: true | |
capture_etw: true | |
leak_detection: true | |
# Run the driver tests on self-hosted runners. | |
driver_ws2019: | |
# Always run this job. | |
# Only run this on repos that have self-host runners. | |
# needs: regular | |
if: github.repository == 'microsoft/ebpf-for-windows' && (github.event_name == 'schedule' || github.event_name == 'pull_request' || github.event_name == 'push' || github.event_name == 'merge_group' || github.event_name == 'workflow_dispatch') | |
uses: ./.github/workflows/reusable-test.yml | |
with: | |
pre_test: .\setup_ebpf_cicd_tests.ps1 -KmTracing $true -KmTraceType "file" | |
test_command: .\execute_ebpf_cicd_tests.ps1 -TestMode "CI/CD" | |
post_test: .\cleanup_ebpf_cicd_tests.ps1 -KmTracing $true | |
name: driver_ws2019 | |
build_artifact: Build-x64 | |
environment: 1ES.Pool=ebpf-cicd-runner-pool-server-2019 | |
self-hosted-runner: true | |
# driver test copies dumps to testlog folder. | |
gather_dumps: false | |
# driver tests manually gather code coverage | |
code_coverage: false |