Updated prebuilds #14
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: "[Android] Build TF Examples" | |
on: | |
push: | |
env: | |
ANDROID_HOME: "D:\\Android\\android-sdk" | |
ANDROID_SDK_ROOT: "D:\\Android\\android-sdk" | |
TF_WORKSPACE: "C:\\TF\\" | |
jobs: | |
android: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-2019, windows-2022] | |
platform: [android, quest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Configure system for maximum build space | |
shell: pwsh | |
working-directory: C:\ | |
run: | | |
Write-Host "Free space before cleanup:" | |
Get-PSDrive | |
Write-Host "Removing Android SDK..." | |
Remove-Item -Path C:\Android -Recurse -ErrorAction Continue | |
Write-Host "Removing VS2019 and VS2022..." | |
Remove-Item -Path "C:\Program Files (x86)\Microsoft Visual Studio\2019" -Recurse -ErrorAction Continue | |
Remove-Item -Path "C:\Program Files\Microsoft Visual Studio\2022" -Recurse -ErrorAction Continue | |
Write-Host "Symlinking workspace directories onto larger C: drive..." | |
New-Item -Path $env:TF_WORKSPACE\The-Forge -ItemType Directory | Out-Null | |
New-Item -Path $env:GITHUB_WORKSPACE\The-Forge -ItemType Junction -Value $env:TF_WORKSPACE\The-Forge -Force | Out-Null | |
New-Item -Path $env:TF_WORKSPACE\Custom-Middleware -ItemType Directory | Out-Null | |
New-Item -Path $env:GITHUB_WORKSPACE\Custom-Middleware -ItemType Junction -Value $env:TF_WORKSPACE\Custom-Middleware -Force | Out-Null | |
New-Item -Path D:\VulkanSDK -ItemType Directory | Out-Null | |
New-Item -Path C:\VulkanSDK -ItemType Junction -Value D:\VulkanSDK | Out-Null | |
Write-Host "Free space after cleanup:" | |
Get-PSDrive | |
- name: Checkout The-Forge | |
uses: actions/checkout@v3 | |
with: | |
path: The-Forge | |
- name: Checkout Custom-Middleware | |
uses: actions/checkout@v3 | |
with: | |
path: Custom-Middleware | |
repository: ${{ github.repository_owner }}/Custom-Middleware | |
ref: ${{ github.ref_name }} # Checkout the Custom-Middleware branch with the same name as the The-Forge branch we're building | |
- name: Install Android SDK | |
shell: pwsh | |
run: | | |
Write-Host "Removing any old Android SDKs..." | |
Remove-Item -Path "$env:ANDROID_SDK_ROOT" -Recurse -ErrorAction Continue | |
Write-Host "Downloading commandline-tools..." | |
Invoke-WebRequest https://dl.google.com/android/repository/commandlinetools-win-8512546_latest.zip -OutFile commandline_tools.zip | |
Write-Host "Extracting commandline-tools..." | |
Expand-Archive commandline_tools.zip -DestinationPath commandline_tools_extracted | |
New-Item "$env:ANDROID_SDK_ROOT/cmdline-tools" -ItemType Directory | |
Move-Item -Path commandline_tools_extracted/cmdline-tools -Destination "$env:ANDROID_SDK_ROOT/cmdline-tools" | |
Rename-Item "$env:ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools" -NewName latest | |
Remove-Item commandline_tools.zip -ErrorAction Continue | |
Write-Host "Installing Android NDK..." | |
Set-Location "$env:ANDROID_SDK_ROOT/cmdline-tools/latest/bin/" | |
Write-Output Y | .\sdkmanager.bat "ndk;21.4.7075529" | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
- name: Install Vulkan SDK | |
run: choco install vulkan-sdk --version 1.2.162.0 | |
- name: Install VS2017 | |
uses: nick-fields/[email protected] | |
with: | |
max_attempts: 3 | |
timeout_minutes: 30 | |
command: choco install VisualStudio2017Community visualstudio2017-workload-nativedesktop visualstudio2017-workload-nativemobile | |
- name: Install Android Game Development Extension | |
shell: pwsh | |
run: | | |
Write-Host "Downloading AGDE..." | |
Invoke-WebRequest https://dl.google.com/android/agde/release/62/20220615-181705/AndroidGameDevelopmentExtensionSetup-v22.2.65.exe -OutFile agde_setup.exe | |
Write-Host "Starting AGDE installer..." | |
./agde_setup.exe -quiet | |
Write-Host "Waiting for AGDE installer to close..." | |
Wait-Process agde_setup | |
Remove-Item agde_setup.exe -ErrorAction Continue | |
- name: "[Quest] Install Oculus Mobile SDK" | |
if: matrix.platform == 'quest' | |
shell: pwsh | |
run: | | |
Write-Host "Downloading Oculus Mobile SDK 1.50..." | |
Invoke-WebRequest https://securecdn.oculus.com/binaries/download/?id=4643347799061523 -OutFile ovr_sdk_mobile_1.50.0.zip | |
Write-Host "Extracting Oculus SDK.." | |
Expand-Archive ovr_sdk_mobile_1.50.0.zip -DestinationPath The-Forge/Common_3/OS/ThirdParty/OpenSource/ovr_sdk_mobile | |
- name: Setup MSBuild | |
uses: microsoft/[email protected] | |
with: | |
vs-version: '[15.0,16.0)' | |
- name: Print free space | |
shell: pwsh | |
run: Get-PSDrive | |
- name: Build | |
working-directory: The-Forge | |
shell: cmd | |
run: python -u ./CI/PyBuild.py --preserveworkingdir --prebuild --printbuildoutput --${{ matrix.platform }} | |
env: | |
VULKAN_SDK: "C:\\VulkanSDK\\1.2.162.0" | |
- name: Print free space | |
if: always() | |
shell: pwsh | |
run: Get-PSDrive |