Skip to content

Commit ae6e4de

Browse files
authored
Merge branch 'main' into experiment/ci-arm64-linux
2 parents bd5c0e0 + a46bce2 commit ae6e4de

File tree

753 files changed

+28931
-9557
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

753 files changed

+28931
-9557
lines changed

.generated.NoMobile.sln

Lines changed: 776 additions & 14 deletions
Large diffs are not rendered by default.

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* @bitsandfoxes @jamescrosswell
1+
* @aritchie @jamescrosswell @Flash0ver

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ body:
3636
- .NET Framework
3737
- IL2CPP
3838
- Mono
39-
- Xamarin
4039
- Other
4140
validations:
4241
required: true
@@ -45,8 +44,8 @@ body:
4544
id: dotnet_version
4645
attributes:
4746
label: .NET Version
48-
description: .NET Version
49-
placeholder: 6.0.0 ← should look like this
47+
description: If using .NET Core, please copy the output of 'dotnet --version' here
48+
placeholder: 9.0.200 ← should look like this
5049
validations:
5150
required: true
5251

@@ -67,6 +66,27 @@ body:
6766
validations:
6867
required: true
6968

69+
- type: input
70+
id: os_version
71+
attributes:
72+
label: OS Version
73+
description: Operating System Version
74+
75+
- type: dropdown
76+
id: ide
77+
attributes:
78+
label: Development Environment
79+
description: What development environment are you using
80+
options:
81+
- Visual Studio v17.x
82+
- Visual Studio Code (Windows)
83+
- Visual Studio Code (MacOS)
84+
- Rider 2024 (Windows)
85+
- Rider 2024 (MacOS)
86+
- Other
87+
validations:
88+
required: true
89+
7090
- type: input
7191
id: sentry_sdk_version
7292
attributes:
@@ -84,6 +104,22 @@ body:
84104
validations:
85105
required: false
86106

107+
- type: textarea
108+
id: workloadset
109+
attributes:
110+
label: Workload Versions
111+
description: If using .NET Core, please copy/paste the output of 'dotnet workload list' here
112+
validations:
113+
required: true
114+
115+
- type: textarea
116+
id: sentryuse
117+
attributes:
118+
label: UseSentry or SentrySdk.Init call
119+
description: Please include the block of code used in UseSentry or SentrySdk.Init - please blank out your DSN
120+
validations:
121+
required: true
122+
87123
- type: textarea
88124
id: repro
89125
attributes:

.github/actions/buildcocoasdk/action.yml

Lines changed: 0 additions & 17 deletions
This file was deleted.

.github/actions/environment/action.yml

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,38 +11,70 @@ runs:
1111
echo "DOTNET_CLI_TELEMETRY_OPTOUT=1" >> $GITHUB_ENV
1212
echo "DOTNET_NOLOGO=1" >> $GITHUB_ENV
1313
14-
# Needed for Android SDK setup step
15-
- uses: actions/setup-java@v3
14+
# Android SDK Build Tools are musl-incompatible
15+
- name: Set Environment Variables for Alpine Linux
16+
if: ${{ contains(matrix.container, 'alpine') }}
17+
shell: bash
18+
run: echo "NO_MOBILE=true" >> $GITHUB_ENV
19+
20+
# zstd is needed for cross OS actions/cache but missing from windows-11-arm
21+
# https://github.com/actions/partner-runner-images/issues/99
22+
- name: Install zstd on Windows ARM64
23+
if: runner.os == 'Windows' && runner.arch == 'ARM64'
24+
shell: pwsh
25+
run: choco install zstandard
26+
27+
# See https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md#xcode
28+
- name: Pin the Xcode Version
29+
if: runner.os == 'macOS'
30+
shell: bash
31+
run: sudo xcode-select --switch /Applications/Xcode_16.2.app
32+
33+
# Java 17 is needed for Android SDK setup step
34+
- name: Install Java 17
35+
if: ${{ !matrix.container }}
36+
uses: actions/setup-java@v4
1637
with:
17-
distribution: 'temurin'
38+
distribution: ${{ runner.os == 'Windows' && runner.arch == 'ARM64' && 'microsoft' || 'temurin' }}
1839
java-version: '17'
1940

2041
- name: Setup Android SDK
42+
if: ${{ !matrix.container }}
2143
uses: android-actions/setup-android@07976c6290703d34c16d382cb36445f98bb43b1f # v3.2.0
2244
with:
2345
log-accepted-android-sdk-licenses: false
2446

25-
- name: Set Java Version
26-
uses: actions/setup-java@v3
47+
# Java 11 is needed by .NET Android
48+
- name: Install Java 11
49+
if: ${{ !matrix.container }}
50+
uses: actions/setup-java@v4
2751
with:
28-
distribution: 'temurin'
52+
distribution: ${{ runner.os == 'Windows' && runner.arch == 'ARM64' && 'microsoft' || 'temurin' }}
2953
java-version: '11'
3054

31-
# .NET 6 and .NET 8 are not built-in with macos-13
55+
- name: Install Mono
56+
if: runner.os == 'macOS'
57+
shell: bash
58+
# Attempt to install Mono, allowing it to fail silently
59+
# Then ensure mono is correctly linked, overwriting any conflicting symlinks
60+
run: |
61+
brew install mono || true
62+
brew link --overwrite mono
63+
3264
- name: Install .NET SDK
33-
uses: actions/setup-dotnet@v3
65+
uses: actions/setup-dotnet@v4
3466
with:
3567
dotnet-version: |
36-
6.0.x
37-
7.0.x
3868
8.0.x
69+
9.0.203
3970
4071
- name: Install .NET Workloads
4172
shell: bash
42-
run: >
73+
run: |
74+
pwd
4375
dotnet workload install \
44-
wasm-tools maui-android \
76+
wasm-tools wasm-tools-net8 maui-android \
4577
${{ runner.os == 'macOS' && 'maui-ios maui-maccatalyst maui-windows macos' || '' }} \
46-
${{ runner.os == 'Windows' && 'maui-windows' || '' }} \
78+
${{ runner.os == 'Windows' && 'maui-ios maui-maccatalyst maui-windows' || '' }} \
4779
--temp-dir "${{ runner.temp }}" \
4880
--skip-sign-check
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Remove unused applications
2+
description: Frees disk space by removing unused applications
3+
runs:
4+
using: composite
5+
steps:
6+
7+
- name: Free Disk Space
8+
if: runner.os == 'Linux'
9+
uses: jlumbroso/free-disk-space@f68fdb76e2ea636224182cfb7377ff9a1708f9b8
10+
with:
11+
android: false
12+
dotnet: false
13+
haskell: true
14+
large-packages: false
15+
docker-images: true
16+
swap-storage: true
17+
18+
# TODO: Do we need all of these or just one?
19+
# 514M /usr/lib/llvm-15
20+
# 486M /usr/lib/llvm-14
21+
# 448M /usr/lib/llvm-13
22+
- name: Remove unused applications
23+
if: runner.os == 'Linux'
24+
shell: bash
25+
run: |
26+
df -h /dev/root
27+
sudo rm -rf /usr/local/.ghcup
28+
sudo rm -rf /usr/local/julia1.10.5
29+
sudo rm -rf /usr/lib/heroku
30+
sudo rm -rf /opt/hostedtoolcache/go
31+
sudo rm -rf /opt/hostedtoolcache/Ruby
32+
sudo apt-get remove -y '^mysql-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mysql-.*' --fix-missing] failed to complete successfully. Proceeding..."
33+
sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..."
34+
sudo apt-get clean || echo "::warning::The command [sudo apt-get clean] failed to complete successfully. Proceeding..."
35+
df -h /dev/root

.github/alpine/Dockerfile

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# docker build --build-arg BASE=alpine:3.21
2+
ARG BASE=alpine:latest
3+
FROM ${BASE}
4+
5+
RUN apk update
6+
7+
# common
8+
RUN apk add bash build-base cmake curl git icu lsb-release-minimal sudo tar wget
9+
10+
# sentry-native
11+
RUN apk add curl-dev libunwind-dev libunwind-static linux-headers openssl-dev zlib-dev xz-dev
12+
13+
# sentry-dotnet
14+
RUN apk add grpc-plugins openjdk11 powershell
15+
ENV PROTOBUF_PROTOC=/usr/bin/protoc
16+
ENV GRPC_PROTOC_PLUGIN=/usr/bin/grpc_csharp_plugin
17+
RUN pwsh -Command Install-Module Pester -Scope AllUsers -Force
18+
19+
# mono (3.22+)
20+
RUN if ! apk add mono; then \
21+
sed -i.bak 's|/v3\.[0-9]\+|/edge|g' /etc/apk/repositories && \
22+
cat /etc/apk/repositories && \
23+
apk update && \
24+
apk add --no-cache mono && \
25+
mv /etc/apk/repositories.bak /etc/apk/repositories && \
26+
apk update; \
27+
fi
28+
RUN mono --version
29+
30+
# runner
31+
RUN addgroup runner
32+
RUN adduser -S -u 1001 -h /home/runner -G runner runner
33+
RUN mkdir -p /home/runner /__e /__w /__w/_temp /__w/_actions /__w/_tool
34+
RUN chown -R runner:runner /home/runner /__e /__w
35+
RUN ln -s /__w /home/runner/work
36+
RUN echo "runner ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/runner
37+
RUN chmod 0440 /etc/sudoers.d/runner
38+
RUN chmod -R 777 /opt
39+
RUN chmod -R 777 /usr/share
40+
USER runner
41+
WORKDIR /__w
42+
ENTRYPOINT ["/bin/bash"]

.github/workflows/alpine.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Build Alpine Linux Docker image
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- '.github/alpine/*'
8+
9+
jobs:
10+
build:
11+
name: Build sentry-dotnet-alpine:${{ matrix.version }}
12+
runs-on: ubuntu-latest
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
version:
17+
- "3.21"
18+
19+
permissions:
20+
contents: read
21+
packages: write
22+
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- uses: docker/login-action@v3
27+
with:
28+
registry: ghcr.io
29+
username: ${{ github.actor }}
30+
password: ${{ secrets.GITHUB_TOKEN }}
31+
32+
- name: Build ghcr.io/${{ github.repository_owner }}/sentry-dotnet-alpine:${{ matrix.version }}
33+
run: docker build --build-arg BASE=alpine:${{ matrix.version }} -t ghcr.io/${{ github.repository_owner }}/sentry-dotnet-alpine:${{ matrix.version }} .
34+
working-directory: .github/alpine
35+
36+
- name: Push ghcr.io/${{ github.repository_owner }}/sentry-dotnet-alpine:${{ matrix.version }}
37+
run: docker push ghcr.io/${{ github.repository_owner }}/sentry-dotnet-alpine:${{ matrix.version }}
38+
working-directory: .github/alpine

0 commit comments

Comments
 (0)