Setup Github Actions (#1003)
This commit is contained in:
parent
3eefe5562e
commit
cac80584a0
137
.github/workflows/ci.yml
vendored
Normal file
137
.github/workflows/ci.yml
vendored
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
name: Continuous Integration
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- 1.9-dev
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- 1.9-dev
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- os: ubuntu-latest
|
||||||
|
os_short: linux
|
||||||
|
compiler_cc: gcc
|
||||||
|
compiler_cxx: g++
|
||||||
|
- os: ubuntu-latest
|
||||||
|
os_short: linux
|
||||||
|
compiler_cc: clang
|
||||||
|
compiler_cxx: clang++
|
||||||
|
- os: ubuntu-18.04
|
||||||
|
os_short: linux
|
||||||
|
compiler_cc: clang-3.9
|
||||||
|
compiler_cxx: clang++-3.9
|
||||||
|
- os: ubuntu-18.04
|
||||||
|
os_short: linux
|
||||||
|
compiler_cc: gcc-6
|
||||||
|
compiler_cxx: g++-6
|
||||||
|
compiler_install: 'g++6 g++-6-multilib'
|
||||||
|
- os: windows-latest
|
||||||
|
os_short: windows
|
||||||
|
compiler_cc: msvc
|
||||||
|
- os: windows-2016
|
||||||
|
os_short: windows
|
||||||
|
compiler_cc: msvc++14.16-vs2017-cl
|
||||||
|
# MacOS 32 Bins seem not supported
|
||||||
|
# - os: macos-latest
|
||||||
|
# os_short: mac
|
||||||
|
# compiler_cc: clang
|
||||||
|
# compiler_cxx: clang++
|
||||||
|
fail-fast: false
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
name: ${{ matrix.os_short }}-${{ matrix.os }}-${{ matrix.compiler_cc }}
|
||||||
|
env:
|
||||||
|
DEPENDENCIES_FOLDER: dependencies
|
||||||
|
DEPENDENCIES_ROOT: ${{ github.workspace }}/dependencies
|
||||||
|
DEPENDENCIES_ROOT_WIN: ${{ github.workspace }}\dependencies
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
path: amxmodx
|
||||||
|
# Setup Python for AMBuild
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
name: Setup Python 3.8
|
||||||
|
with:
|
||||||
|
python-version: 3.8
|
||||||
|
- name: Install Python dependencies
|
||||||
|
run: |
|
||||||
|
python3 -m pip install --upgrade pip setuptools wheel
|
||||||
|
python3 --version
|
||||||
|
- name: Install AMXModX dependencies (Linux)
|
||||||
|
if: startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS')
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
mkdir -p ${{ env.DEPENDENCIES_FOLDER }}
|
||||||
|
cd ${{ env.DEPENDENCIES_FOLDER }}
|
||||||
|
|
||||||
|
# Satisfy checkout-deps requirement for a "amxmodx" folder.
|
||||||
|
mkdir -p amxmodx
|
||||||
|
../amxmodx/support/checkout-deps.sh
|
||||||
|
- name: Install AMXModX dependencies (Windows)
|
||||||
|
if: startsWith(runner.os, 'Windows')
|
||||||
|
shell: cmd
|
||||||
|
run: |
|
||||||
|
mkdir %DEPENDENCIES_ROOT_WIN%\nasm
|
||||||
|
curl -L -o "%DEPENDENCIES_ROOT_WIN%\nasm\nasm.zip" https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win32/nasm-2.13.03-win32.zip
|
||||||
|
chdir %DEPENDENCIES_ROOT_WIN%\nasm
|
||||||
|
7z x nasm.zip
|
||||||
|
|
||||||
|
chdir %DEPENDENCIES_ROOT_WIN%
|
||||||
|
git clone https://github.com/alliedmodders/ambuild
|
||||||
|
git clone https://github.com/alliedmodders/metamod-hl1 metamod-am
|
||||||
|
git clone https://github.com/alliedmodders/hlsdk
|
||||||
|
|
||||||
|
curl -L -o "mysql-connector-c-6.1.1-win32.zip" https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-c-6.1.1-win32.zip
|
||||||
|
7z x mysql-connector-c-6.1.1-win32.zip -o"mysql"
|
||||||
|
cd mysql
|
||||||
|
dir
|
||||||
|
ren mysql-connector-c-6.1.1-win32 mysql-5.5
|
||||||
|
move /Y mysql-5.5 ..\
|
||||||
|
|
||||||
|
cd ..\ambuild
|
||||||
|
python3 setup.py install
|
||||||
|
- name: Install Linux dependencies
|
||||||
|
if: startsWith(runner.os, 'Linux')
|
||||||
|
run: |
|
||||||
|
sudo dpkg --add-architecture i386
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y --no-install-recommends \
|
||||||
|
gcc-multilib g++-multilib libstdc++6 lib32stdc++6 \
|
||||||
|
libc6-dev libc6-dev-i386 linux-libc-dev \
|
||||||
|
linux-libc-dev:i386 lib32z1-dev nasm ${{ matrix.compiler_cc }} ${{ matrix.compiler_install }}
|
||||||
|
- name: Select compiler
|
||||||
|
if: startsWith(runner.os, 'Linux')
|
||||||
|
run: |
|
||||||
|
echo "CC=${{ matrix.compiler_cc }}" >> $GITHUB_ENV
|
||||||
|
echo "CXX=${{ matrix.compiler_cxx }}" >> $GITHUB_ENV
|
||||||
|
${{ matrix.compiler_cc }} --version
|
||||||
|
${{ matrix.compiler_cxx }} --version
|
||||||
|
- uses: ilammy/setup-nasm@v1
|
||||||
|
- name: Build Linux/macOS
|
||||||
|
if: startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS')
|
||||||
|
working-directory: amxmodx
|
||||||
|
run: |
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
python3 ../configure.py --enable-optimize --metamod=${{ env.DEPENDENCIES_ROOT }}/metamod-am --hlsdk=${{ env.DEPENDENCIES_ROOT }}/hlsdk --mysql=${{ env.DEPENDENCIES_ROOT }}/mysql-5.5
|
||||||
|
ambuild
|
||||||
|
- uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
with:
|
||||||
|
arch: x86
|
||||||
|
- name: Build Windows
|
||||||
|
if: startsWith(runner.os, 'Windows')
|
||||||
|
working-directory: amxmodx
|
||||||
|
shell: cmd
|
||||||
|
run: |
|
||||||
|
cl.exe
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
python3 ../configure.py --enable-optimize --metamod=${{ env.DEPENDENCIES_ROOT_WIN }}\metamod-am --hlsdk=${{ env.DEPENDENCIES_ROOT_WIN }}\hlsdk --mysql=${{ env.DEPENDENCIES_ROOT_WIN }}\mysql-5.5
|
||||||
|
ambuild
|
||||||
|
|
Loading…
Reference in New Issue
Block a user