/
githubmirror
/
x64dbg
Обзор
Документация
Войти
/
githubmirror
/
x64dbg
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
development
.github/workflows/build.yml
177 строк
6 KB
Duncan Ogilvie
Capture crash dumps for tests in CI
19 июл 2026, 16:08
19 июл 2026, 16:08
d8ea621
Код
Авторство
О чём код?
name: Build on: [push, pull_request] # Automatically cancel previous runs of this workflow on the same branch concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: cmake: # Skip building pull requests from the same repository if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository }} runs-on: windows-latest strategy: fail-fast: false matrix: arch: [x64, x86] steps: - name: Checkout uses: actions/checkout@v6 with: submodules: recursive fetch-depth: 1 - name: Visual Studio Development Environment uses: TheMrMilchmann/setup-msvc-dev@79dac248aac9d0059f86eae9d8b5bfab4e95e97c # v4.0.0 with: arch: ${{ matrix.arch }} - name: Build run: | cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_UNITY_BUILD=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=6 -DX64DBG_RELEASE=${{ startsWith(github.ref, 'refs/tags/') && 'ON' || 'OFF' }} cmake --build build - name: Upload Build Artifacts uses: actions/upload-artifact@v7 with: name: build-${{ matrix.arch }} path: bin if-no-files-found: error include-hidden-files: true retention-days: 1 docs: # Skip building pull requests from the same repository if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository }} runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v6 with: fetch-depth: 1 - name: Build Documentation run: | docs\makechm.bat - name: Upload Documentation uses: actions/upload-artifact@v7 with: name: docs path: docs/x64dbg.chm if-no-files-found: error include-hidden-files: true retention-days: 1 test: needs: cmake runs-on: windows-latest strategy: fail-fast: false matrix: arch: [x64, x86] engine: [TitanEngine, GleeBug] steps: - name: Checkout uses: actions/checkout@v6 with: fetch-depth: 1 - name: Download Build Artifacts uses: actions/download-artifact@v8 with: name: build-${{ matrix.arch }} path: bin - name: Run Tests shell: pwsh run: | $artifactDir = Join-Path $PWD "test-artifacts/${{ matrix.arch }}-${{ matrix.engine }}" $dumpDir = Join-Path $artifactDir "crash-dumps" $localDumps = "HKCU:\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\headless.exe" New-Item -Path $localDumps -Force | Out-Null New-ItemProperty -Path $localDumps -Name DumpFolder -Value $dumpDir -PropertyType ExpandString -Force | Out-Null New-ItemProperty -Path $localDumps -Name DumpType -Value 2 -PropertyType DWord -Force | Out-Null New-ItemProperty -Path $localDumps -Name DumpCount -Value 4 -PropertyType DWord -Force | Out-Null Write-Host "Full headless crash dumps will be written to $dumpDir" py src/tests/run.py --arch ${{ matrix.arch }} --engine ${{ matrix.engine }} --artifacts-dir $artifactDir - name: Upload Test Artifacts if: failure() uses: actions/upload-artifact@v7 with: name: test-artifacts-${{ matrix.arch }}-${{ matrix.engine }} path: test-artifacts/${{ matrix.arch }}-${{ matrix.engine }} if-no-files-found: warn include-hidden-files: true retention-days: 7 package: needs: [cmake, docs] runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v6 with: fetch-depth: 1 - name: Download x64 Artifacts uses: actions/download-artifact@v8 with: name: build-x64 path: bin - name: Download x86 Artifacts uses: actions/download-artifact@v8 with: name: build-x86 path: bin - name: Download Documentation uses: actions/download-artifact@v8 with: name: docs path: docs - name: Prepare Release run: | curl.exe -L https://github.com/x64dbg/translations/releases/download/translations/qm.zip -o bin\qm.zip 7z x bin\qm.zip -obin cmake -P .\cmake\release.cmake $timestamp = Get-Date (Get-Date).ToUniversalTime() -Format "yyyy-MM-dd_HH-mm" echo "timestamp=$timestamp" >> $env:GITHUB_ENV - name: Upload Snapshot uses: actions/upload-artifact@v7 with: name: snapshot_${{ env.timestamp }} path: | release/pluginsdk release/release release/commithash.txt if-no-files-found: error include-hidden-files: true compression-level: 9 - name: Upload Symbols uses: actions/upload-artifact@v7 with: name: symbols-snapshot_${{ env.timestamp }} path: | release/pdb release/commithash.txt if-no-files-found: error include-hidden-files: true compression-level: 9 - name: Upload Plugin SDK uses: actions/upload-artifact@v7 with: name: x64dbg-pluginsdk path: | release/pluginsdk if-no-files-found: error include-hidden-files: true compression-level: 9