Update build.yml #41
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: Build C/C++ | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
linux: | |
name: Linux Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup Checkout | |
uses: actions/checkout@v4 | |
- name: Add i386 architecture | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo su -c "echo 'deb http://archive.ubuntu.com/ubuntu/bionic main restricted universe multiverse' >> /etc/apt/sources.list" | |
- name: Update repository | |
run: sudo apt-get update | |
- name: Install build dependencies | |
run: sudo apt-get install -qq -y wget unzip build-essential gcc-4.8-multilib g++-4.8-multilib libgcc1:i386 | |
- name: Update alternatives | |
run: sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 | |
- name: Run build | |
working-directory: ./MatchBot | |
run: make | |
- name: Move release file to publish | |
run: | | |
# Make Match BOT path | |
mkdir -p publish/addons/matchbot/dlls | |
# Move released file to dlls | |
mv ./MatchBot/Release/matchbot_mm.so publish/addons/matchbot/dlls | |
# Copy cstrike contents to publish dir | |
cp -ar cstrike/. publish | |
- name: Download metamod-r | |
run: | | |
# Get latest release version of metamod-r | |
wget --quiet https://github.com/theAsmodai/metamod-r/releases/download/1.3.0.149/metamod-bin-1.3.0.149.zip | |
# Unzip metamod library to metamod folder | |
unzip -p metamod-bin*.zip addons/metamod/metamod_i386.so > publish/addons/metamod/metamod_i386.so | |
- name: Download hitbox_fixer | |
run: | | |
# Get latest release version of hitbox_fixer | |
wget --quiet https://github.com/Garey27/hitbox_fixer/releases/download/1.1.5/hitbox_fix-bin-1.1.5.zip | |
# Unzip hitbox_fixer library to metamod folder | |
unzip -p hitbox_fix-bin*.zip addons/hitbox_fix/hitbox_fix_mm_i386.so > publish/addons/hitbox_fix/hitbox_fix_mm_i386.so | |
- name: Download Accuracy Fix | |
run: | | |
# Get latest release version of Accuracy Fix | |
wget --quiet https://github.com/SmileYzn/AccuracyFix/releases/download/1.1.4/linux32.zip | |
# Unzip accuracy-fix library to metamod folder | |
unzip -p linux32.zip addons/accuracyfix/dlls/accuracyfix_mm.so > publish/addons/accuracyfix/accuracyfix_mm.so | |
- name: Deploy artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux32 | |
path: publish/* | |
windows: | |
name: Windows Build | |
runs-on: windows-latest | |
env: | |
SOLUTION_FILE_PATH: . | |
BUILD_CONFIGURATION: Release | |
steps: | |
- name: Setup Checkout | |
uses: actions/checkout@v4 | |
- name: Add MSBuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- name: Restore NuGet packages | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: nuget restore ${{env.SOLUTION_FILE_PATH}} | |
- name: Run Build | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} | |
- name: Move release file to publish | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: | | |
# Make publish directory | |
mkdir publish\addons\matchbot\dlls | |
# Move cstrike files to publish | |
copy ${{env.SOLUTION_FILE_PATH}}\cstrike\* publish -Recurse -Force | |
# Move released dll to publish | |
copy ${{env.BUILD_CONFIGURATION}}\*.dll publish\addons\matchbot\dlls -Recurse -Force | |
- name: Download Metamod-r | |
run: | | |
# Set assets data | |
$assets = "https://github.com/theAsmodai/metamod-r/releases/download/1.3.0.149/metamod-bin-1.3.0.149.zip" | |
# Get ZIP file name | |
$zipName = "metamod-bin-1.3.0.138.zip" | |
# Download ZIP file | |
Invoke-WebRequest -Uri $assets -Out $zipName | |
# Extract ZIP File | |
Expand-Archive $zipName | |
# Get base name from ZIP file | |
$baseName = (Get-Item $zipName).BaseName | |
# DLL from path | |
$fromPath = ".\" + $baseName + "\addons\metamod\metamod.dll" | |
# DLL dest path | |
$DestPath = ".\publish\addons\metamod\metamod.dll" | |
# Copy item | |
Copy-Item -Path $fromPath -Destination $DestPath | |
- name: Download Hitbox Fixer | |
run: | | |
# Set assets data | |
$assets = "https://github.com/Garey27/hitbox_fixer/releases/download/1.1.5/hitbox_fix-bin-1.1.5.zip" | |
# Get ZIP file name | |
$zipName = "hitbox_fix-bin-1.1.5.zip" | |
# Download ZIP file | |
Invoke-WebRequest -Uri $assets -Out $zipName | |
# Extract ZIP File | |
Expand-Archive $zipName | |
# Get base name from ZIP file | |
$baseName = (Get-Item $zipName).BaseName | |
# DLL from path | |
$fromPath = ".\" + $baseName + "\addons\hitbox_fix\hitbox_fix_mm.dll" | |
# DLL dest path | |
$DestPath = ".\publish\addons\hitbox_fix\hitbox_fix_mm.dll" | |
# Copy item | |
Copy-Item -Path $fromPath -Destination $DestPath | |
- name: Download Accuracy Fix | |
run: | | |
# Set assets data | |
$assets = "https://github.com/SmileYzn/AccuracyFix/releases/download/1.1.4/win32.zip" | |
# Get ZIP file name | |
$zipName = "win32.zip" | |
# Download ZIP file | |
Invoke-WebRequest -Uri $assets -Out $zipName | |
# Extract ZIP File | |
Expand-Archive $zipName | |
# Get base name from ZIP file | |
$baseName = (Get-Item $zipName).BaseName | |
# DLL from path | |
$fromPath = ".\" + $baseName + "\addons\accuracyfix\dlls\accuracyfix_mm.dll" | |
# DLL dest path | |
$DestPath = ".\publish\addons\accuracyfix\accuracyfix_mm.dll" | |
# Copy item | |
Copy-Item -Path $fromPath -Destination $DestPath | |
- name: Deploy artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: win32 | |
path: publish/* |