fix: re-add setting thread name #3395
Workflow file for this run
This file contains hidden or 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
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - "release/**" | |
| paths-ignore: | |
| - "*.md" | |
| pull_request: | |
| paths-ignore: | |
| - "*.md" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: make style | |
| build-ios: | |
| name: Xcode Build for iOS | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: "recursive" | |
| - run: | | |
| cmake -B sentry-native-xcode -GXcode -DCMAKE_SYSTEM_NAME=iOS | |
| xcodebuild build -project sentry-native-xcode/Sentry-Native.xcodeproj -sdk iphonesimulator | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Linux (GCC 9.5.0, 32-bit) | |
| os: ubuntu-22.04 | |
| CC: gcc-9 | |
| CXX: g++-9 | |
| TEST_X86: 1 | |
| - name: Linux (GCC 9.5.0) | |
| os: ubuntu-22.04 | |
| CC: gcc-9 | |
| CXX: g++-9 | |
| # ERROR_ON_WARNINGS: 1 | |
| - name: Linux (GCC 12.3.0) | |
| os: ubuntu-24.04 | |
| CC: gcc-12 | |
| CXX: g++-12 | |
| - name: Linux Arm64 (GCC 14.2.0) | |
| os: ubuntu-24.04-arm | |
| CC: gcc-14 | |
| CXX: g++-14 | |
| - name: Linux (GCC 14.2.0) | |
| os: ubuntu-24.04 | |
| CC: gcc-14 | |
| CXX: g++-14 | |
| - name: Linux Arm64 (GCC 14.2.0 + tsan) | |
| os: ubuntu-24.04-arm | |
| CC: gcc-14 | |
| CXX: g++-14 | |
| RUN_ANALYZER: tsan | |
| - name: Linux (GCC 14.2.0 + tsan) | |
| os: ubuntu-24.04 | |
| CC: gcc-14 | |
| CXX: g++-14 | |
| RUN_ANALYZER: tsan | |
| - name: Linux (clang 19 + asan + llvm-cov) | |
| os: ubuntu-24.04 | |
| CC: clang-19 | |
| CXX: clang++-19 | |
| ERROR_ON_WARNINGS: 1 | |
| RUN_ANALYZER: asan,llvm-cov | |
| - name: Linux Arm64 (clang 19 + asan + llvm-cov) | |
| os: ubuntu-24.04-arm | |
| CC: clang-19 | |
| CXX: clang++-19 | |
| ERROR_ON_WARNINGS: 1 | |
| RUN_ANALYZER: asan,llvm-cov | |
| - name: Linux (clang 19 + tsan) | |
| os: ubuntu-24.04 | |
| CC: clang-19 | |
| CXX: clang++-19 | |
| ERROR_ON_WARNINGS: 1 | |
| RUN_ANALYZER: tsan | |
| - name: Linux Arm64 (clang 19 + tsan) | |
| os: ubuntu-24.04-arm | |
| CC: clang-19 | |
| CXX: clang++-19 | |
| ERROR_ON_WARNINGS: 1 | |
| RUN_ANALYZER: tsan | |
| - name: Linux (clang 19 + kcov) | |
| os: ubuntu-24.04 | |
| CC: clang-19 | |
| CXX: clang++-19 | |
| ERROR_ON_WARNINGS: 1 | |
| RUN_ANALYZER: kcov | |
| - name: Linux (GCC 13.3.0 + code-checker + valgrind) | |
| os: ubuntu-24.04 | |
| RUN_ANALYZER: code-checker,valgrind | |
| - name: Linux (GCC + musl + libunwind) | |
| os: ubuntu-latest | |
| container: ghcr.io/getsentry/sentry-native-alpine:3.21 | |
| CMAKE_DEFINES: -DSENTRY_LIBUNWIND_SHARED=OFF | |
| CC: gcc | |
| CXX: g++ | |
| SYSTEM_PYTHON: 1 | |
| - name: Linux (clang + musl + libunwind) | |
| os: ubuntu-latest | |
| container: ghcr.io/getsentry/sentry-native-alpine:3.21 | |
| CMAKE_DEFINES: -DSENTRY_LIBUNWIND_SHARED=OFF | |
| CC: clang | |
| CXX: clang++ | |
| SYSTEM_PYTHON: 1 | |
| - name: macOS 14 (xcode llvm) | |
| os: macos-14 | |
| ERROR_ON_WARNINGS: 1 | |
| SYSTEM_VERSION_COMPAT: 0 | |
| - name: macOS 13 (xcode llvm) | |
| os: macos-13 | |
| ERROR_ON_WARNINGS: 1 | |
| SYSTEM_VERSION_COMPAT: 0 | |
| - name: macOS 14 (xcode llvm + universal) | |
| os: macos-14 | |
| ERROR_ON_WARNINGS: 1 | |
| SYSTEM_VERSION_COMPAT: 0 | |
| CMAKE_DEFINES: -DCMAKE_OSX_ARCHITECTURES=arm64;x86_64 | |
| - name: macOS 15 (clang 18 + asan + llvm-cov) | |
| os: macos-15-large | |
| CC: clang | |
| CXX: clang++ | |
| ERROR_ON_WARNINGS: 1 | |
| SYSTEM_VERSION_COMPAT: 0 | |
| RUN_ANALYZER: asan,llvm-cov | |
| - name: Windows (old VS, 32-bit) | |
| os: windows-2022 | |
| TEST_X86: 1 | |
| - name: Windows (latest) | |
| os: windows-latest | |
| - name: Windows ClangCL (latest) | |
| os: windows-latest | |
| VS_GENERATOR_TOOLSET: ClangCL | |
| - name: LLVM-Mingw | |
| os: windows-latest | |
| TEST_MINGW: 1 | |
| MINGW_PKG_PREFIX: x86_64-w64-mingw32 | |
| MINGW_ASM_MASM_COMPILER: llvm-ml | |
| MINGW_ASM_MASM_FLAGS: -m64 | |
| # The Android emulator is currently only available on macos, see: | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/android?view=azure-devops#test-on-the-android-emulator | |
| # TODO: switch to reactivecircus/android-emulator-runner, concurrently running emulators continuously fail now. | |
| # - name: Android (API 31, NDK 23) | |
| # os: macos-15-large | |
| # ANDROID_API: 31 | |
| # ANDROID_NDK: 23.2.8568313 | |
| # ANDROID_ARCH: x86_64 | |
| - name: Android (API 35, NDK 27) | |
| os: macos-15-large | |
| ANDROID_API: 35 | |
| ANDROID_NDK: 27.2.12479018 | |
| ANDROID_ARCH: x86_64 | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.os }} | |
| container: ${{ matrix.container }} | |
| env: | |
| TEST_X86: ${{ matrix.TEST_X86 }} | |
| TEST_MINGW: ${{ matrix.TEST_MINGW }} | |
| ERROR_ON_WARNINGS: ${{ matrix.ERROR_ON_WARNINGS }} | |
| RUN_ANALYZER: ${{ matrix.RUN_ANALYZER }} | |
| ANDROID_API: ${{ matrix.ANDROID_API }} | |
| ANDROID_NDK: ${{ matrix.ANDROID_NDK }} | |
| ANDROID_ARCH: ${{ matrix.ANDROID_ARCH }} | |
| CMAKE_DEFINES: ${{ matrix.CMAKE_DEFINES }} | |
| SYSTEM_VERSION_COMPAT: ${{ matrix.SYSTEM_VERSION_COMPAT }} | |
| VS_GENERATOR_TOOLSET: ${{ matrix.VS_GENERATOR_TOOLSET }} | |
| SYSTEM_PYTHON: ${{ matrix.SYSTEM_PYTHON }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ !env['SYSTEM_PYTHON'] && '3.12' || '' }} | |
| cache: "pip" | |
| - name: Installing Linux Dependencies | |
| if: ${{ runner.os == 'Linux' && matrix.os != 'ubuntu-22.04' && !env['TEST_X86'] && !matrix.container }} | |
| run: | | |
| sudo apt update | |
| sudo apt install cmake clang-19 llvm g++-12 valgrind zlib1g-dev libcurl4-openssl-dev | |
| # Install kcov from source | |
| sudo apt-get install binutils-dev libssl-dev libelf-dev libstdc++-12-dev libdw-dev libiberty-dev | |
| git clone https://github.com/SimonKagstrom/kcov.git | |
| cd kcov | |
| # pin to a known good version with the coveralls git integration and performance bottlenecks fixed | |
| git checkout b370df05ccc96facfd83a9e101e35263457b8035 | |
| mkdir build | |
| cd build | |
| cmake .. | |
| make | |
| sudo make install | |
| - name: Installing Linux GCC 9.4.0 Dependencies | |
| if: ${{ runner.os == 'Linux' && matrix.os == 'ubuntu-22.04' && !env['TEST_X86'] && !matrix.container }} | |
| run: | | |
| sudo apt update | |
| sudo apt install cmake llvm kcov g++ valgrind zlib1g-dev libcurl4-openssl-dev | |
| - name: Installing Linux 32-bit Dependencies | |
| if: ${{ runner.os == 'Linux' && env['TEST_X86'] && !matrix.container }} | |
| run: | | |
| sudo dpkg --add-architecture i386 | |
| sudo apt update | |
| sudo apt install cmake gcc-9-multilib g++-9-multilib zlib1g-dev:i386 libssl-dev:i386 libcurl4-openssl-dev:i386 | |
| - name: Installing Alpine Linux Dependencies | |
| if: ${{ contains(matrix.container, 'alpine') }} | |
| run: | | |
| apk update | |
| apk add curl-dev libunwind-dev libunwind-static xz-dev | |
| # https://github.com/actions/runner-images/issues/9491 | |
| - name: Decrease vm.mmap_rnd_bit to prevent ASLR ASAN issues | |
| if: ${{ runner.os == 'Linux' && contains(env['RUN_ANALYZER'], 'asan') }} | |
| run: sudo sysctl vm.mmap_rnd_bits=28 | |
| - name: Installing CodeChecker | |
| if: ${{ contains(env['RUN_ANALYZER'], 'code-checker') }} | |
| run: sudo snap install codechecker --classic | |
| - name: Expose llvm@15 PATH for Mac | |
| if: ${{ runner.os == 'macOS' }} | |
| run: echo $(brew --prefix llvm@15)/bin >> $GITHUB_PATH | |
| - name: Expose llvm@18 PATH for Mac | |
| if: ${{ runner.os == 'macOS' && matrix.os == 'macos-15-large' && matrix.RUN_ANALYZER == 'asan,llvm-cov' }} | |
| run: echo $(brew --prefix llvm@18)/bin >> $GITHUB_PATH | |
| - name: Set macOS SDKROOT | |
| if: ${{ runner.os == 'macOS' }} | |
| run: echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> "$GITHUB_ENV" | |
| - name: Remove Strawberry Perl from PATH | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: powershell | |
| run: | | |
| $strawberryBins = @( | |
| 'C:\Strawberry\c\bin', | |
| 'C:\Strawberry\perl\site\bin', | |
| 'C:\Strawberry\perl\bin' | |
| ) | |
| $cleanedPaths = $env:Path -split ';' | Where-Object { $_ -and ($strawberryBins -notcontains $_) } | |
| $newPath = ($cleanedPaths -join ';') | |
| "PATH=$newPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| - name: Installing LLVM-MINGW Dependencies | |
| if: ${{ runner.os == 'Windows' && env['TEST_MINGW'] }} | |
| shell: powershell | |
| env: | |
| MINGW_PKG_PREFIX: ${{ matrix.MINGW_PKG_PREFIX }} | |
| MINGW_ASM_MASM_COMPILER: ${{ matrix.MINGW_ASM_MASM_COMPILER }} | |
| MINGW_ASM_MASM_FLAGS: ${{ matrix.MINGW_ASM_MASM_FLAGS }} | |
| run: . "scripts\install-llvm-mingw.ps1" | |
| - name: Set up zlib for Windows | |
| if: ${{ runner.os == 'Windows' }} | |
| shell: powershell | |
| run: . "scripts\install-zlib.ps1" | |
| - name: Setup Java Version | |
| if: ${{ env['ANDROID_API'] }} | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Setup Gradle | |
| if: ${{ env['ANDROID_API'] }} | |
| uses: gradle/actions/setup-gradle@579fbbe7221704325eb4c4d4bf20c2b0859fba76 # pin@v3 | |
| with: | |
| gradle-home-cache-cleanup: true | |
| - name: Starting Android Simulator | |
| if: ${{ env['ANDROID_API'] }} | |
| run: bash scripts/start-android.sh | |
| timeout-minutes: 20 | |
| - name: Add sentry.native.test hostname | |
| if: ${{ runner.os == 'Windows' }} | |
| # The path is usually C:\Windows\System32\drivers\etc\hosts | |
| run: | | |
| Add-Content -Path $env:SystemRoot\System32\drivers\etc\hosts -Value "127.0.0.1 sentry.native.test" | |
| shell: powershell | |
| - name: Print hosts file | |
| if: ${{ runner.os == 'Windows' }} | |
| run: type $env:SystemRoot\System32\drivers\etc\hosts | |
| shell: powershell | |
| - name: Add sentry.native.test hostname | |
| if: ${{ runner.os == 'macOS' || runner.os == 'Linux' }} | |
| run: | | |
| echo "127.0.0.1 sentry.native.test" | sudo tee -a /etc/hosts | |
| # remove "::1 localhost ..." to avoid conflicts with proxy tests (musl) | |
| sed '/^::1/d' /etc/hosts | sudo tee /etc/hosts | |
| cat /etc/hosts | |
| shell: bash | |
| - name: Test | |
| shell: bash | |
| run: | | |
| pip install --upgrade --requirement tests/requirements.txt | |
| [ "${{ matrix.CC }}" ] && export CC="${{ matrix.CC }}" | |
| [ "${{ matrix.CXX }}" ] && export CXX="${{ matrix.CXX }}" | |
| pytest --capture=no --verbose tests | |
| - name: Check NDK | |
| if: ${{ env['ANDROID_API'] }} | |
| working-directory: ndk | |
| run: make check | |
| - name: "Upload to codecov.io" | |
| if: ${{ contains(env['RUN_ANALYZER'], 'cov') }} | |
| uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d # [email protected] | |
| with: | |
| directory: coverage | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false | |
| verbose: true | |
| archive: | |
| name: Create Release Archive | |
| runs-on: ubuntu-latest | |
| needs: [lint, test] | |
| # only run this on pushes, combined with the CI triggers, this will only | |
| # run on master or the release branch | |
| if: ${{ needs.test.result == 'success' && github.event_name == 'push' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Setup Java Version | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@579fbbe7221704325eb4c4d4bf20c2b0859fba76 # pin@v3 | |
| with: | |
| gradle-home-cache-cleanup: true | |
| - name: Create source archive | |
| run: | | |
| rm -rf build .c* .e* .git* scripts Makefile external/breakpad/src/tools external/breakpad/src/processor | |
| zip -r sentry-native.zip . | |
| - name: Build NDK artifacts | |
| working-directory: ndk | |
| run: ./gradlew clean distZip | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.sha }} | |
| if-no-files-found: error | |
| path: | | |
| sentry-native.zip | |
| ndk/lib/build/distributions/*.zip | |
| ndk/lib/build/intermediates/merged_native_libs/release/mergeReleaseNativeLibs/out/lib/* |