8000 Introduce cross-platform compatibility and pipeline by swernli · Pull Request #205 · UbiquityDotNET/Llvm.NET · GitHub
[go: up one dir, main page]

Skip to content

Introduce cross-platform compatibility and pipeline #205

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

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
6224e5b
All files found, symbols still not matching
Sep 4, 2020
fe6e591
Compiling OK, RuntimeLibrary mismatch on build
Sep 4, 2020
817c04c
Build is working on Windows using cmake
Sep 14, 2020
b5e0e7e
First steps towards Linux/Mac build scripts
Oct 9, 2020
d6f3a8e
Updated native library load to work with .NET Core 3.1+
Oct 14, 2020
bce5a4e
Windows CMAKE build is now creating proper symbol exports; interop te…
Oct 15, 2020
da93f31
WIP Updated scripts, breaking them into more steps; not working
Nov 23, 2020
1057c31
WIP Cleaning up build scripts
Nov 23, 2020
6fc6879
WIP last couple of changes before Thanksgiving
Nov 23, 2020
400bd96
Added LLVM as a submodule, builds LLVM on WIndows
Dec 1, 2020
34d7659
Added script to move the LLVM build output where it's expected, and u…
Dec 4, 2020
cdf6511
Set up CI with Azure Pipelines (#1)
anpaz Dec 3, 2020
2ed281b
Added move of LLVM build output to the expected location for the rest…
Dec 5, 2020
e6ae6af
Updating CMake-Helpers.ps1 for xplat build support
swernli Dec 9, 2020
eb67b85
Xplat build of native code working (#3)
swernli Jan 4, 2021
4b55688
swernli/pipeline (#4)
swernli Jan 15, 2021
b089bdc
Set fetch depth to 0
swernli Jan 19, 2021
868b8db
Remove explicit cached headers in favor of zip file
swernli Jan 19, 2021
66241cc
Fix Build-Source
swernli Jan 19, 2021
9a9caa8
Use force for header expansion
swernli Jan 19, 2021
f85cd75
Update for latest changes from development branch
swernli Jan 19, 2021
916425c
Update to support GitHub actions
swernli Jan 20, 2021
f4a4cd9
Rearrange build interop script
swernli Jan 20, 2021
697a364
Try fixing build pipeline
swernli Jan 20, 2021
70656f5
Add more output when patching VS
swernli Jan 20, 2021
f2f0375
Try remove explicit shell selection for dotnet build
swernli Jan 20, 2021
64b3bc2
Propagate llvm includes through pipeline
swernli Jan 20, 2021
09d5235
Skip creating llvm dir
swernli Jan 20, 2021
43d67bd
Set tests into blame mode
swernli Jan 20, 2021
9346639
Fix bindings config for inline functions
swernli Jan 20, 2021
516d504
Add comment for test blame mode.
swernli Jan 20, 2021
dd73e7c
One more bindings fix
swernli Jan 20, 2021
d7cc95b
Try running Object Files tests.
swernli Jan 20, 2021
484ee69
Update release workflow to perform xplat build
swernli Jan 20, 2021
bbb2dec
Programmatically skip bad Linux/MacOS tests
swernli Jan 20, 2021
f98667e
Misc. clean up
swernli Jan 20, 2021
7d6f406
Fix typos
swernli Jan 20, 2021
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
175 changes: 160 additions & 15 deletions .github/workflows/pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,42 +11,187 @@ on:
- develop
- llvm_10
jobs:
build:

build_native_windows:
runs-on: windows-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
with:
persist-credentials: false
fetch-depth: 0

- name: Build Xplat
run: ./Build-Xplat.ps1
shell: pwsh

- name: Publish native binary
uses: actions/upload-artifact@v1
with:
name: win-x64
path: ./xplat/win-x64

- name: Publish Llvm headers
uses: actions/upload-artifact@v1
with:
name: include
path: ./llvm/include

build_native_linux:
runs-on: ubuntu-20.04
steps:
- name: Checkout Repo
uses: actions/checkout@v2
with:
persist-credentials: false
fetch-depth: 0

- name: Build Xplat
run: ./Build-Xplat.ps1
shell: pwsh

- name: Publish native binary
uses: actions/upload-artifact@v1
with:
name: linux-x64
path: ./xplat/linux-x64

build_native_macos:
runs-on: macos-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
with:
persist-credentials: false
fetch-depth: 0

- name: Build Xplat
run: ./Build-Xplat.ps1
shell: pwsh

- name: Publish native binary
uses: actions/upload-artifact@v1
with:
name: osx-x64
path: ./xplat/osx-x64

build_dotnet:
runs-on: windows-latest
needs: [build_native_windows, build_native_linux, build_native_macos]
steps:
- name: Checkout Repo
uses: actions/checkout@v2
with:
persist-credentials: false
fetch-depth: 0

- name: Build Source
run: .\Build-All.ps1 -ForceClean -BuildMode Source
- name: Download Native Binaries
uses: actions/download-artifact@v2
with:
path: ./xplat

- name: Publish build logs
- name: Move include files
run: Move-Item -Path ./xplat/include -Destination ./llvm/

- name: Build .NET Packages
run: ./Build-Source.ps1
shell: pwsh

- name: Publish Build Logs
if: always() && github.event_name == 'pull_request'
uses: actions/upload-artifact@v1
with:
name: Build Logs
path: .\BuildOutput\BinLogs

- name: Publish NuGET Packages
- name: Publish NuGet Packages
uses: actions/upload-artifact@v1
with:
name: Nuget Packages
path: .\BuildOutput\Nuget
name: NuGet Packages
path: ./BuildOutput/NuGet

- name: Run Tests
run: .\Invoke-UnitTests.ps1
test_windows:
runs-on: windows-latest
needs: build_dotnet
steps:
- name: Checkout Repo
uses: actions/checkout@v2
with:
persist-credentials: false
fetch-depth: 0

- name: Publish test logs
- name: Download NuGet Packages
uses: actions/download-artifact@v2
with:
name: NuGet Packages
path: ./BuildOutput/NuGet

- name: Invoke Unit Tests
run: ./Invoke-UnitTests.ps1
shell: pwsh

- name: Publish Test Logs
if: always()
uses: actions/upload-artifact@v1
with:
name: Test Logs
path: .\BuildOutput\Test-Results
name: Windows Test Logs
path: ./BuildOutput/Test-Results

build-docs:
test_linux:
runs-on: ubuntu-20.04
needs: build_dotnet
steps:
- name: Checkout Repo
uses: actions/checkout@v2
with:
persist-credentials: false
fetch-depth: 0

- name: Download NuGet Packages
uses: actions/download-artifact@v2
with:
name: NuGet Packages
path: ./BuildOutput/NuGet

- name: Invoke Unit Tests
run: ./Invoke-UnitTests.ps1
shell: pwsh

- name: Publish Test Logs
if: always()
uses: actions/upload-artifact@v1
with:
name: Linux Test Logs
path: ./BuildOutput/Test-Results

test_macos:
runs-on: macos-latest
needs: build_dotnet
steps:
- name: Checkout Repo
uses: actions/checkout@v2
with:
persist-credentials: false
fetch-depth: 0

- name: Download NuGet Packages
uses: actions/download-artifact@v2
with:
name: NuGet Packages
path: ./BuildOutput/NuGet

- name: Invoke Unit Tests
run: ./Invoke-UnitTests.ps1
shell: pwsh

- name: Publish Test Logs
if: always()
uses: actions/upload-artifact@v1
with:
name: MacOS Test Logs
path: ./BuildOutput/Test-Results

build_docs:
runs-on: windows-latest
steps:
- name: Checkout Repo
Expand All @@ -58,7 +203,7 @@ jobs:
- name: Build Docs
run: .\Build-All.ps1 -ForceClean -BuildMode Docs

- name: Upload docs artifact
- name: Upload Docs
uses: actions/upload-artifact@v1
with:
name: Docs
Expand All @@ -68,7 +213,7 @@ jobs:
if: always() && github.event_name == 'pull_request'
uses: actions/upload-artifact@v1
with:
name: Build Logs
name: Doc Build Logs
path: .\BuildOutput\BinLogs


Loading
0