diff --git a/.github/workflows/win_clang_dbg_x86.yaml b/.github/workflows/win_clang_dbg_x86.yaml new file mode 100644 index 000000000..7659f3a96 --- /dev/null +++ b/.github/workflows/win_clang_dbg_x86.yaml @@ -0,0 +1,175 @@ +name: Windows x86 GN/Clang (Debug) + +on: + # This is a required workflow specified in branch enforcement + # and must run unconditionally to allow merges. + push: + pull_request: + +jobs: + + win_clang_rel_x86: + + runs-on: windows-2019 + + steps: + - name: Git config + run: | + git config --global core.autocrlf false + git config --global core.eol lf + + - name: Install depot_tools + shell: cmd + run: | + git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git ..\depot_tools + set "PATH=%CD%\..\depot_tools;%PATH%" + gclient + + - name: Set up Python 3.x + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - uses: actions/checkout@v2 + with: + ref: main + path: base + fetch-depth: 0 + + - name: Sync code for main branch + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd base + copy scripts\standalone.gclient .gclient + gclient sync + + - name: Generate project for main branch + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd base + gn gen out\Debug --args="target_cpu=\"x86\" is_debug=false gpgmm_disable_size_cache=true" + + - name: Build for main branch + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd base + ninja -C out\Debug + + - name: Run gpgmm_end2end_tests leak tests + shell: cmd + run: | + cd base + out\Debug\gpgmm_end2end_tests.exe --gtest_filter=*NoLeak + + - name: Run gpgmm_end2end_tests + shell: cmd + run: | + cd base + out\Debug\gpgmm_end2end_tests.exe --gtest_filter=-*NoLeak --gtest_output=json:${{ github.workspace }}\..\baseline_end2end_tests.json + + - name: Run gpgmm_unittests + shell: cmd + run: | + cd base + out\Debug\gpgmm_unittests.exe --gtest_output=json:${{ github.workspace }}\..\baseline_unittests.json + + # - name: Run gpgmm_capture_replay_tests + # shell: cmd + # run: | + # cd base + # out\Debug\gpgmm_capture_replay_tests.exe --gtest_output=json:${{ github.workspace }}\..\baseline_capture_replay_tests.json + + - uses: actions/checkout@v2 + with: + path: test + fetch-depth: 0 + + - name: Sync code for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + copy scripts\standalone.gclient .gclient + gclient sync + + - name: Generate shared library for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + gn gen out\Debug --args="target_cpu=\"x86\" is_debug=false gpgmm_shared_library=true" + + - name: Build shared library for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + ninja -C out\Debug gpgmm + + - name: Generate project for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + gn gen out\Debug --args="target_cpu=\"x86\" is_debug=false gpgmm_disable_size_cache=true" + + - name: Build for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + ninja -C out\Debug + + - name: Run gpgmm_end2end_tests (with patch) + shell: cmd + run: | + cd test + out\Debug\gpgmm_end2end_tests.exe --gtest_filter=-*NoLeak --gtest_output=json:${{ github.workspace }}\..\test_end2end_tests.json + + - name: Run gpgmm_unittests (with patch) + shell: cmd + run: | + cd test + out\Debug\gpgmm_unittests.exe --gtest_output=json:${{ github.workspace }}\..\test_unittests.json + + # - name: Run gpgmm_capture_replay_tests (with patch) + # shell: cmd + # run: | + # cd test + # out\Debug\gpgmm_capture_replay_tests.exe --log-level=DEBUG --gtest_output=json:${{ github.workspace }}\..\test_capture_replay_tests.json + + - name: Run gpgmm_capture_replay_tests to generate capture (with patch) + shell: cmd + run: | + cd test + out\Debug\gpgmm_capture_replay_tests.exe --log-level=DEBUG --gtest_filter=*Replay/* --event-mask=0x3 --ignore-caps-mismatch --disable-memory-playback + + - name: Run gpgmm_capture_replay_tests to playback capture (with patch) + shell: cmd + run: | + cd test + out\Debug\gpgmm_capture_replay_tests.exe --gtest_filter=*Replay/* + + - name: Regression check end2end tests + run: | + python test\scripts\regression_check.py ${{ github.workspace }}\..\baseline_end2end_tests.json ${{ github.workspace }}\..\test_end2end_tests.json + + - name: Regression check unittests + run: | + python test\scripts\regression_check.py ${{ github.workspace }}\..\baseline_unittests.json ${{ github.workspace }}\..\test_unittests.json + + # - name: Regression check capture replay tests + # run: | + # python test\scripts\regression_check.py ${{ github.workspace }}\..\baseline_capture_replay_tests.json ${{ github.workspace }}\..\test_capture_replay_tests.json + diff --git a/.github/workflows/win_clang_rel_x86.yaml b/.github/workflows/win_clang_rel_x86.yaml new file mode 100644 index 000000000..86073502c --- /dev/null +++ b/.github/workflows/win_clang_rel_x86.yaml @@ -0,0 +1,174 @@ +name: Windows x86 GN/Clang (Release) + +on: + # This is a required workflow specified in branch enforcement + # and must run unconditionally to allow merges. + push: + pull_request: + +jobs: + + win_clang_rel_x86: + + runs-on: windows-2019 + + steps: + - name: Git config + run: | + git config --global core.autocrlf false + git config --global core.eol lf + + - name: Install depot_tools + shell: cmd + run: | + git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git ..\depot_tools + set "PATH=%CD%\..\depot_tools;%PATH%" + gclient + + - name: Set up Python 3.x + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - uses: actions/checkout@v2 + with: + ref: main + path: base + fetch-depth: 0 + + - name: Sync code for main branch + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd base + copy scripts\standalone.gclient .gclient + gclient sync + + - name: Generate project for main branch + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd base + gn gen out\Release --args="target_cpu=\"x86\" is_debug=false gpgmm_force_tracing=true" + + - name: Build for main branch + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd base + ninja -C out\Release + + - name: Run gpgmm_end2end_tests leak tests + shell: cmd + run: | + cd base + out\Release\gpgmm_end2end_tests.exe --gtest_filter=*NoLeak + + - name: Run gpgmm_end2end_tests + shell: cmd + run: | + cd base + out\Release\gpgmm_end2end_tests.exe --gtest_filter=-*NoLeak --gtest_output=json:${{ github.workspace }}\..\baseline_end2end_tests.json + + - name: Run gpgmm_unittests + shell: cmd + run: | + cd base + out\Release\gpgmm_unittests.exe --gtest_output=json:${{ github.workspace }}\..\baseline_unittests.json + + # - name: Run gpgmm_capture_replay_tests + # shell: cmd + # run: | + # cd base + # out\Release\gpgmm_capture_replay_tests.exe --gtest_output=json:${{ github.workspace }}\..\baseline_capture_replay_tests.json + + - uses: actions/checkout@v2 + with: + path: test + fetch-depth: 0 + + - name: Sync code for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + copy scripts\standalone.gclient .gclient + gclient sync + + - name: Generate shared library for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + gn gen out\Release --args="target_cpu=\"x86\" is_debug=false gpgmm_shared_library=true" + + - name: Build shared library for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + ninja -C out\Release gpgmm + + - name: Generate project for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + gn gen out\Release --args="target_cpu=\"x86\" is_debug=false gpgmm_force_tracing=true" + + - name: Build for main branch (with patch) + shell: cmd + run: | + set "PATH=%CD%\..\depot_tools;%PATH%" + set "DEPOT_TOOLS_WIN_TOOLCHAIN=0" + cd test + ninja -C out\Release + + - name: Run gpgmm_end2end_tests (with patch) + shell: cmd + run: | + cd test + out\Release\gpgmm_end2end_tests.exe --gtest_filter=-*NoLeak --gtest_output=json:${{ github.workspace }}\..\test_end2end_tests.json + + - name: Run gpgmm_unittests (with patch) + shell: cmd + run: | + cd test + out\Release\gpgmm_unittests.exe --gtest_output=json:${{ github.workspace }}\..\test_unittests.json + + # - name: Run gpgmm_capture_replay_tests (with patch) + # shell: cmd + # run: | + # cd test + # out\Release\gpgmm_capture_replay_tests.exe --gtest_output=json:${{ github.workspace }}\..\test_capture_replay_tests.json + + - name: Run gpgmm_capture_replay_tests to generate capture (with patch) + shell: cmd + run: | + cd test + out\Release\gpgmm_capture_replay_tests.exe --gtest_filter=*Replay/* --event-mask=0x3 --ignore-caps-mismatch --disable-memory-playback + + - name: Run gpgmm_capture_replay_tests to playback capture (with patch) + shell: cmd + run: | + cd test + out\Release\gpgmm_capture_replay_tests.exe --gtest_filter=*Replay/* + + - name: Regression check end2end tests + run: | + python test\scripts\regression_check.py ${{ github.workspace }}\..\baseline_end2end_tests.json ${{ github.workspace }}\..\test_end2end_tests.json + + - name: Regression check unittests + run: | + python test\scripts\regression_check.py ${{ github.workspace }}\..\baseline_unittests.json ${{ github.workspace }}\..\test_unittests.json + + # - name: Regression check capture replay tests + # run: | + # python test\scripts\regression_check.py ${{ github.workspace }}\..\baseline_capture_replay_tests.json ${{ github.workspace }}\..\test_capture_replay_tests.json