Skip to content

Update build.yml

Update build.yml #147

Workflow file for this run

name: Build C/C++
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
linux:
name: Linux Build
runs-on: ubuntu-latest
container: ubuntu:18.04
env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
ACTIONS_RUNNER_FORCED_INTERNAL_NODE_VERSION: node16
ACTIONS_RUNNER_FORCE_ACTIONS_NODE_VERSION: node16
steps:
- name: Setup Checkout
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: npm ci
- run: npm test
- name: Add i386 architecture
run: dpkg --add-architecture i386
- name: Update repository
run: apt-get update
- name: Install build dependencies
run: apt-get install -qq -y wget unzip build-essential gcc-4.8-multilib g++-4.8-multilib libgcc1:i386 libcurl4-openssl-dev:i386 zlib1g-dev:i386 libssl-dev:i386
- name: Update alternatives
run: 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: Make Match BOT path
run: mkdir -p publish/addons/matchbot/dlls
- name: Move released file to dlls
run: mv ./MatchBot/Release/matchbot_mm.so publish/addons/matchbot/dlls
- name: Copy cstrike contents to publish dir
run: cp -ar cstrike/. publish
- name: Get latest release version of metamod-r
run: wget --quiet https://github.com/rehlds/Metamod-R/releases/download/1.3.0.149/metamod-bin-1.3.0.149.zip
- name: Unzip metamod library to metamod folder
run: unzip -p metamod-bin*.zip addons/metamod/metamod_i386.so > publish/addons/metamod/metamod_i386.so
- name: Get latest release version of hitbox_fixer
run: wget --quiet https://github.com/Garey27/hitbox_fixer/releases/download/2.0.3/hitbox_fix-bin-2.0.3.zip
- name: Unzip hitbox_fixer library to metamod folder
run: unzip -p hitbox_fix-bin*.zip addons/hitboxfixer/hitbox_fix_mm_i386.so > publish/addons/hitboxfixer/hitbox_fix_mm_i386.so
- name: Download Accuracy Fix
run: wget --quiet https://github.com/SmileYzn/AccuracyFix/releases/download/1.1.16/linux32.zip
- name: Unzip accuracy-fix library to metamod folder
run: unzip -p linux32.zip addons/accuracyfix/dlls/accuracyfix_mm.so > publish/addons/accuracyfix/accuracyfix_mm.so
- name: Deploy artifacts
uses: actions/upload-artifact@v3
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/rehlds/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/2.0.3/hitbox_fix-bin-2.0.3.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\hitboxfixer\hitbox_fix_mm.dll"
# DLL dest path
$DestPath = ".\publish\addons\hitboxfixer\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.16/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/*