Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support EOF data in debug data entries. #583

Merged
merged 32 commits into from
Nov 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
40ac58d
GitHub Actions Pipeline implementation
Aragas Sep 16, 2024
7a5a63c
Better workflow name
Aragas Sep 16, 2024
0061e40
OS Improvements (#1)
Aragas Sep 16, 2024
36c3444
Removed blame
Aragas Sep 17, 2024
9772b44
Removed explicit 5000 timeout
Aragas Sep 17, 2024
2dffaa1
Switched to MonoMod's Test Publish (#3)
Aragas Sep 18, 2024
bc5c221
Run experimental tests on master/development only
Aragas Sep 18, 2024
1ba1608
Corrected experimental check
Aragas Sep 18, 2024
0db0bf5
Fixed typo
Aragas Sep 18, 2024
c767388
Added manual .NET installation on Appveyor
Aragas Sep 19, 2024
03ced92
Forgot to also add development branch
Aragas Sep 19, 2024
2cf3553
Appveyor install fix
Aragas Sep 19, 2024
3914928
Split version into VersionPrefix and VersionSuffix
Aragas Sep 19, 2024
0308e46
Added missing git checkout
Aragas Sep 19, 2024
71e9d06
Fixed sourcelink, added pdb embed
Aragas Sep 19, 2024
1b99ed7
Moved Ubuntu out of experimental
Aragas Sep 22, 2024
5f73481
Replace special characters in git branch name with underscore
Aragas Sep 22, 2024
9ce0239
Support EOF data in debug data entries.
DaZombieKiller Sep 22, 2024
5f65621
Fix RsdsDataSegment.Path including null terminator
Windows10CE Sep 23, 2024
2a9d499
Merge pull request #584 from Windows10CE/fix-rsds-path
Washi1337 Sep 23, 2024
2fdf836
Merge pull request #582 from Aragas/simple
Washi1337 Sep 23, 2024
15c11dc
Downgrade wine-staging (#585)
Aragas Sep 23, 2024
9e7b1d5
Reusable Workflow Secrets Declaration (#586)
Aragas Sep 23, 2024
b83c35b
Fixed NuGet Push Path Pattern
Aragas Sep 24, 2024
56f531a
Removed explicit NuGet source
Aragas Sep 24, 2024
4190a4c
Merge pull request #587 from Aragas/patch-3
Washi1337 Sep 24, 2024
3200229
BUGFIX: Only add export directory once and patch existing if possible
Washi1337 Oct 7, 2024
fd9cbb5
BUGFIX: Do not duplicate ending zero entry in reloc blocks
Washi1337 Oct 7, 2024
bb4f79d
BUGFIX: Only remove imports directory if count == 0
Washi1337 Oct 7, 2024
969342d
Merge pull request #589 from Washi1337/issue/duplicated-exports
Washi1337 Oct 18, 2024
11aa1d4
Merge branch 'pe-debug' of https://github.com/DaZombieKiller/AsmResol…
Washi1337 Nov 9, 2024
798a4ed
BUGFIX: Add EmptyDebugDataSegment
Washi1337 Nov 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/actions/get-dotnet-channel/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Convert Target Framework to Channel
description: |
Convert Target Framework to Channel. A channel is either LTS/STS or a version number.
Use `target_framework` for a single conversion with `channel` as output.
Use `target_framework_array` for a single conversion with `channels_multiline` as output.

inputs:
target_framework:
description: 'The target framework to use'
required: false
target_framework_array:
description: 'The target framework array to use'
required: false

outputs:
channel:
description: 'The converted Channel variable'
value: ${{steps.set_output.outputs.channel}}
channels_multiline:
description: 'The converted Channels multiline variable'
value: ${{steps.set_output.outputs.channels_multiline}}

runs:
using: "composite"
steps:
- name: Set Channels
id: set_output
run: |
$target_framework = "${{inputs.target_framework}}";
if ($target_framework -ne '') {
$channel = $target_framework.Replace('coreapp', '').Replace('net', '');
"channel=$channel" | Out-File -FilePath $env:GITHUB_OUTPUT -Append;
}
$target_frameworks = "${{inputs.target_framework_array}}";
if ($target_frameworks -ne '') {
$EOF = -join (1..15 | ForEach {[char]((48..57)+(65..90)+(97..122) | Get-Random)});
"channels_multiline<<$EOF" | Out-File -FilePath $env:GITHUB_OUTPUT -Append;
foreach ($target_framework in ConvertFrom-Json "${{inputs.target_framework_array}}") {
$target_framework.Replace('coreapp', '').Replace('net', '') | Out-File -FilePath $env:GITHUB_OUTPUT -Append;
}
"$EOF" | Out-File -FilePath $env:GITHUB_OUTPUT -Append;
}
shell: pwsh
51 changes: 51 additions & 0 deletions .github/actions/get-dotnet-path/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Get .NET Path
description: Get .NET path for the architecture

inputs:
architecture:
description: 'The architecture to use'
required: true

outputs:
path:
description: 'The .NET path for the architecture'
value: ${{ steps.set-path.outputs.path }}

runs:
using: "composite"
steps:
- name: Get Program Files path for x86
if: ${{runner.os == 'Windows' && inputs.architecture == 'x86'}}
uses: ./.github/actions/get-program-files
id: get-program-files-x86
with:
architecture: x86

- name: Get Program Files path for x64
if: ${{runner.os == 'Windows' && (inputs.architecture == 'x86' || inputs.architecture == 'x64')}}
uses: ./.github/actions/get-program-files
id: get-program-files-x64
with:
architecture: x64

- name: Set .NET path for ${{inputs.architecture}}
id: set-path
run: |
if ('${{runner.os == 'Windows'}}' -eq 'true') {
if ('${{inputs.architecture == 'x86'}}' -eq 'true') {
$dotnet = "${{steps.get-program-files-x86.outputs.path}}/dotnet/dotnet.exe";
} else {
$dotnet = "${{steps.get-program-files-x64.outputs.path}}/dotnet/dotnet.exe";
}
} elseif ('${{inputs.image == 'macos-14'}}' -eq 'true') {
if ('${{inputs.architecture == 'x64'}}' -eq 'true') {
$dotnet = "/Users/runner/.dotnet/x64/dotnet";
} else {
$dotnet = "/Users/runner/.dotnet/dotnet";
}
} else {
# Ubuntu only has x64
$dotnet = 'dotnet';
}
"path=$dotnet" | Out-File -FilePath $env:GITHUB_OUTPUT -Append;
shell: pwsh
44 changes: 44 additions & 0 deletions .github/actions/get-mono-path/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Get Mono Path
description: Get Mono path for the architecture

inputs:
architecture:
description: 'The architecture to use'
required: true

outputs:
path:
description: 'The Mono path for the architecture'
value: ${{ steps.set-path.outputs.path }}

runs:
using: "composite"
steps:
- name: Get Program Files path for x86
if: ${{runner.os == 'Windows' && inputs.architecture == 'x86'}}
uses: ./.github/actions/get-program-files
id: get-program-files-x86
with:
architecture: x86

- name: Get Program Files path for x64
if: ${{runner.os == 'Windows' && (inputs.architecture == 'x86' || inputs.architecture == 'x64')}}
uses: ./.github/actions/get-program-files
id: get-program-files-x64
with:
architecture: x64

- name: Set Mono path for ${{inputs.architecture}}
id: set-path
run: |
if ('${{runner.os == 'Windows'}}' -eq 'true') {
if ('${{inputs.architecture == 'x86'}}' -eq 'true') {
$mono = "${{steps.get-program-files-x86.outputs.path}}/Mono/bin/mono.exe";
} else {
$mono = "${{steps.get-program-files-x64.outputs.path}}/Mono/bin/mono.exe";
}
} else {
$mono = 'mono';
}
"path=$mono" | Out-File -FilePath $env:GITHUB_OUTPUT -Append;
shell: pwsh
28 changes: 28 additions & 0 deletions .github/actions/get-program-files/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Get ProgramFiles Path
description: Get ProgramFiles path for the architecture

inputs:
architecture:
description: 'The architecture to use'
required: true

outputs:
path:
description: 'The ProgramFiles path for the architecture'
value: ${{ steps.set-path.outputs.path }}

runs:
using: "composite"
steps:
- name: Set Program Files path for ${{inputs.architecture}}
id: set-path
run: |
if ('${{ inputs.architecture == 'x86'}}' -eq 'true') {
$path = [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::ProgramFilesX86);
"path=$path" | Out-File -FilePath $env:GITHUB_OUTPUT -Append;
}
if ('${{ inputs.architecture == 'x64'}}' -eq 'true') {
$path = [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::ProgramFiles);
"path=$path" | Out-File -FilePath $env:GITHUB_OUTPUT -Append;
}
shell: pwsh
37 changes: 37 additions & 0 deletions .github/actions/setup-dotnet-macos-rosetta/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Setup .NET
description: Setup .NET using the provided target framework and architecture

inputs:
target_framework:
description: 'The .NET target framework to setup'
required: true
target_framework_array:
description: 'The .NET target frameworks to setup'
required: true

runs:
using: "composite"
steps:
- name: Get .NET Channels
uses: ./.github/actions/get-dotnet-channel
id: get_channels
with:
target_framework: ${{inputs.target_framework}}
target_framework_array: ${{inputs.target_framework_array}}

- name: Setup .NET x64 ${{steps.get_channels.outputs.channels_multiline}}
uses: dlemstra/setup-dotnet@add-architecture-option
with:
dotnet-architecture: x64
dotnet-version: |
${{steps.get_channels.outputs.channel}}
${{steps.get_channels.outputs.channels_multiline}}
env:
DOTNET_INSTALL_DIR: /Users/runner/.dotnet/x64

- name: Setup .NET ${{steps.get_channels.outputs.channels_multiline}}
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
${{steps.get_channels.outputs.channel}}
${{steps.get_channels.outputs.channels_multiline}}
30 changes: 30 additions & 0 deletions .github/actions/setup-dotnet-unix/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Setup .NET
description: Setup .NET using the provided target framework and architecture

inputs:
target_framework:
description: 'The .NET target framework to setup'
required: true
target_framework_array:
description: 'The .NET target frameworks to setup'
required: true

runs:
using: "composite"
steps:
- name: Setup .NET Sdk
uses: actions/setup-dotnet@v4

- name: Get .NET Channels
uses: ./.github/actions/get-dotnet-channel
id: get_channels
with:
target_framework: ${{inputs.target_framework}}
target_framework_array: ${{inputs.target_framework_array}}

- name: Setup .NET ${{steps.get_channels.outputs.channels_multiline}}
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
${{steps.get_channels.outputs.channel}}
${{steps.get_channels.outputs.channels_multiline}}
48 changes: 48 additions & 0 deletions .github/actions/setup-dotnet-windows/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Setup .NET Windows
description: Setup .NET for Windows using the provided target framework and architecture

inputs:
architecture:
description: 'The .NET architecture to setup'
required: true
target_framework:
description: 'The .NET target framework to setup'
required: true
target_framework_array:
description: 'The .NET target frameworks to setup'
required: true

runs:
using: "composite"
steps:
- name: Get .NET Channel for ${{inputs.target_framework}}
uses: ./.github/actions/get-dotnet-channel
id: get_channels
with:
target_framework: ${{inputs.target_framework}}
target_framework_array: ${{inputs.target_framework_array}}

- name: Get Program Files path for x86
uses: ./.github/actions/get-program-files
if: ${{inputs.architecture == 'x86'}}
id: get-program-files-x86
with:
architecture: x86

- name: Setup .NET x86 ${{steps.get_channels.outputs.channels_multiline}}
uses: dlemstra/setup-dotnet@add-architecture-option
if: ${{inputs.architecture == 'x86'}}
with:
dotnet-architecture: x86
dotnet-version: |
${{steps.get_channels.outputs.channel}}
${{steps.get_channels.outputs.channels_multiline}}
env:
DOTNET_INSTALL_DIR: ${{steps.get-program-files-x86.outputs.path}}/dotnet

- name: Setup .NET ${{inputs.architecture}} ${{steps.get_channels.outputs.channels_multiline}}
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
${{steps.get_channels.outputs.channel}}
${{steps.get_channels.outputs.channels_multiline}}
28 changes: 28 additions & 0 deletions .github/actions/setup-mono-windows/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Setup Mono Windows
description: Setup Mono for Windows using the latest version

inputs:
architecture:
description: 'The architecture to setup Mono for'
required: true
version:
description: 'The Mono version to install'
required: false

outputs:
path:
description: 'The Mono path for the architecture'
value: '${{steps.get-program-files.outputs.path}}/Mono/bin/mono.exe'

runs:
using: "composite"
steps:
- name: Setup Mono
run: choco install mono --yes --no-progress --${{inputs.architecture}} ${{(inputs.version != '' && '--version=') || ''}}${{inputs.version}} --ignore-checksums
shell: pwsh

- name: Get Program Files path for ${{inputs.architecture}}
uses: ./.github/actions/get-program-files
id: get-program-files
with:
architecture: ${{inputs.architecture}}
24 changes: 24 additions & 0 deletions .github/actions/setup-wine-macos/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Install Wine on OS X
description: Install Wine on OS X

runs:
using: "composite"
steps:
# wine@staging v9.17
- run: |
curl -L ${{env.WINE_CASK}} > [email protected];
brew install --cask [email protected];
rm [email protected];
shell: bash
env:
WINE_CASK: https://raw.githubusercontent.com/Homebrew/homebrew-cask/2f29727c9961e8159df6dc19db315bc7783a4b99/Casks/w/wine%40staging.rb

# We can't use /usr/share/wine/mono because it's read-only
# We can't use /opt/wine/mono because it's read-only
- run: |
mkdir -p ~/.wine/share/wine/mono
curl -L -o mono.tar.xz ${{env.WINE_MONO}}
tar -xf mono.tar.xz -C ~/.wine/share/wine/mono
shell: bash
env:
WINE_MONO: https://github.com/madewokherd/wine-mono/releases/download/wine-mono-9.3.0/wine-mono-9.3.0-x86.tar.xz
35 changes: 35 additions & 0 deletions .github/actions/setup-wine-ubuntu/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Install Wine on Ubuntu
description: Install Wine on Ubuntu

runs:
using: "composite"
steps:
- run: sudo dpkg --add-architecture i386
shell: bash

- run: |
sudo mkdir -pm755 /etc/apt/keyrings;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
shell: bash

- run: sudo apt-get update
shell: bash

- run: |
sudo apt install --install-recommends \
winehq-staging=${{env.WINE_VERSION}} \
wine-staging=${{env.WINE_VERSION}} \
wine-staging-i386=${{env.WINE_VERSION}} \
wine-staging-amd64=${{env.WINE_VERSION}}
shell: bash
env:
WINE_VERSION: 9.17~jammy-1

- run: |
mkdir -p /usr/share/wine/mono
curl -L -o mono.tar.xz ${{env.WINE_MONO}}
tar -xf mono.tar.xz -C /usr/share/wine/mono
shell: bash
env:
WINE_MONO: https://github.com/madewokherd/wine-mono/releases/download/wine-mono-9.3.0/wine-mono-9.3.0-x86.tar.xz
Loading
Loading