Kick off Vulkan loader #268
This file contains 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: Vulkan Loader | |
on: | |
push: | |
branches-ignore: | |
- "ci/**" | |
- "develop/**" | |
- "main" | |
paths: | |
- build/submodules/Vulkan-Loader | |
- "build/cmake/*" | |
- build/nuke/Native/Core.cs | |
- build/nuke/Native/VulkanLoader.cs | |
- .github/workflows/vulkan-loader.yml | |
jobs: | |
Build: | |
if: github.repository == 'dotnet/Silk.NET' | |
strategy: | |
fail-fast: false | |
matrix: | |
env: | |
- os: ubuntu-22.04 | |
name: Linux | |
nuke_invoke: ./build.sh | |
extras: | | |
# We need to adjust APT sources for multiarch. Use the ones corresponding to | |
# Ubuntu 22.04 with appropriate `arch` values. ports.ubuntu.com is required | |
# for armhf and arm64. | |
sudo tee /etc/apt/sources.list << EOF | |
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy main multiverse restricted universe | |
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-backports main multiverse restricted universe | |
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-security main multiverse restricted universe | |
deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe | |
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy main multiverse restricted universe | |
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-backports main multiverse restricted universe | |
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-security main multiverse restricted universe | |
deb [arch=arm64,armhf] http://ports.ubuntu.com jammy-updates main multiverse restricted universe | |
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy main multiverse restricted universe | |
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-backports main multiverse restricted universe | |
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-security main multiverse restricted universe | |
deb [arch=amd64] http://security.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe | |
EOF | |
sudo dpkg --add-architecture arm64 | |
sudo dpkg --add-architecture armhf | |
sudo apt update | |
sudo apt install -y gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf | |
for arch in amd64 arm64 armhf; do | |
sudo apt install -y libx11-xcb-dev:$arch libxkbcommon-dev:$arch libwayland-dev:$arch libxrandr-dev:$arch | |
done | |
wget https://github.com/mstorsjo/llvm-mingw/releases/download/20241015/llvm-mingw-20241015-msvcrt-ubuntu-20.04-x86_64.tar.xz | |
sudo mkdir /opt/llvm-mingw-msvcrt | |
sudo tar xf llvm-mingw-20241015-msvcrt-ubuntu-20.04-x86_64.tar.xz --strip-components 1 -C /opt/llvm-mingw-msvcrt | |
rm llvm-mingw-20241015-msvcrt-ubuntu-20.04-x86_64.tar.xz | |
- os: windows-2022 | |
name: Windows | |
nuke_invoke: ./build.cmd | |
extras: "" | |
- os: macos-14 | |
name: Darwin | |
nuke_invoke: ./build.sh | |
extras: "" | |
name: ${{ matrix.env.name }} Build | |
runs-on: ${{ matrix.env.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
token: ${{ secrets.PUSHABLE_GITHUB_TOKEN }} | |
- name: Checkout submodules, configure git | |
run: | | |
git -c submodule.third_party/git-hooks.update=none submodule update --init --recursive --depth 0 build/submodules/Vulkan-Loader | |
git config --local user.email "9011267+dotnet-bot@users.noreply.github.com" | |
git config --local user.name "The Silk.NET Automaton" | |
- name: Extra prerequisites | |
run: | | |
echo running extras | |
${{ matrix.env.extras }} | |
- name: Cache .tmp, ~/.nuget/packages | |
uses: actions/cache@v2 | |
with: | |
path: | | |
.tmp | |
~/.nuget/packages | |
key: ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }} | |
- name: Setup .NET 6.0 and .NET 7.0 | |
uses: actions/setup-dotnet@v1 | |
with: | |
dotnet-version: | | |
6.0.201 | |
7.0.* | |
- name: Build Vulkan Loader | |
run: ${{ matrix.env.nuke_invoke }} VulkanLoader | |
env: | |
PUSHABLE_GITHUB_TOKEN: ${{ secrets.PUSHABLE_GITHUB_TOKEN }} | |
VERBOSE: true |