From bb5ef5daca76e2683e439ffdadc44f7b6ad99dc7 Mon Sep 17 00:00:00 2001 From: maxime1907 <19607336+maxime1907@users.noreply.github.com> Date: Sat, 24 Sep 2022 12:07:10 +0200 Subject: [PATCH] feat: add github ci --- .github/workflows/ci.yml | 119 +++++++++++++++++++++++++++++++++++++++ AMBuildScript | 5 -- version.rc | 103 +++++++++++++++++++++++++++++++++ 3 files changed, 222 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 version.rc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..19f17de --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,119 @@ +name: CI + +on: [push, pull_request, workflow_dispatch] + +jobs: + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-20.04, windows-2019] + sourcemod-version: [1.11-dev] + include: + - os: ubuntu-20.04 + target-archs: x86,x86_64 + sdks: css,csgo + - os: windows-2019 + target-archs: x86,x86_64 + sdks: csgo + + steps: + - name: Install Linux packages + if: runner.os == 'Linux' + run: | + sudo apt update + sudo apt install -yq --no-install-recommends g++-multilib + + - name: Set up Python + uses: actions/setup-python@v2 + + - name: Checkout + uses: actions/checkout@v2 + with: + path: extension + + - name: Checkout SourceMod + uses: actions/checkout@v2 + with: + repository: alliedmodders/sourcemod + ref: ${{ matrix.sourcemod-version }} + path: sourcemod + submodules: recursive + + - name: Checkout AMBuild + uses: actions/checkout@v2 + with: + repository: alliedmodders/ambuild + path: ambuild + + - name: Checkout sm-ext-common + uses: actions/checkout@v2 + with: + repository: srcdslab/sm-ext-common + path: sourcemod/extensions/sm-ext-common + + - name: Install sourcemod dependencies + run: | + bash sourcemod/tools/checkout-deps.sh -m -s ${{ matrix.sdks }} + + - name: Install AMBuild + uses: BSFishy/pip-action@v1 + with: + packages: ./ambuild + + - name: Build + working-directory: extension + shell: bash + env: + BREAKPAD_SYMBOL_SERVER: ${{ secrets.BREAKPAD_SYMBOL_SERVER }} + run: | + mkdir build && cd build + python ../configure.py --enable-optimize --targets=${{ matrix.target-archs }} --sdks=${{ matrix.sdks }} + ambuild + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: ${{ runner.os }} + path: extension/build/package + + + release: + name: Release + if: startsWith(github.ref, 'refs/tags/') + needs: build + runs-on: ubuntu-latest + + steps: + - name: Download artifacts + uses: actions/download-artifact@v2 + + - name: Package + run: | + version=`echo $GITHUB_REF | sed "s/refs\/tags\///"` + ls -Rall + if [ -d "./Linux/" ]; then + cd ./Linux/ + tar -czf ../${{ github.event.repository.name }}-${version}-linux.tar.gz -T <(\ls -1) + cd - + fi + if [ -d "./macOS/" ]; then + cd ./macOS/ + tar -czf ../${{ github.event.repository.name }}-${version}-mac.tar.gz -T <(\ls -1) + cd - + fi + if [ -d "./Windows/" ]; then + cd ./Windows/ + tar -czf ../${{ github.event.repository.name }}-${version}-windows.tar.gz -T <(\ls -1) + cd - + fi + + - name: Release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: '*.tar.gz' + tag: ${{ github.ref }} + file_glob: true diff --git a/AMBuildScript b/AMBuildScript index c4b0166..d4c780d 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -30,11 +30,6 @@ class SDK(object): WinOnly = ['windows'] WinLinux = ['windows', 'linux'] WinLinuxMac = ['windows', 'linux', 'mac'] -CSGO = { - 'windows': ['x86'], - 'linux': ['x86', 'x86_64'], - 'mac': ['x86_64'] -} PossibleSDKs = { 'episode1': SDK('HL2SDK', '1.ep1', '1', 'EPISODEONE', WinLinux, 'episode1'), diff --git a/version.rc b/version.rc new file mode 100644 index 0000000..d45a0c7 --- /dev/null +++ b/version.rc @@ -0,0 +1,103 @@ +// Microsoft Visual C++ generated resource script. +// +//#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +#include + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION SM_VERSION_FILE + PRODUCTVERSION SM_VERSION_FILE + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "Comments", "SourceMod Extension" + VALUE "FileDescription", "SourceMod Extension" + VALUE "FileVersion", SM_VERSION_STRING + VALUE "InternalName", "SourceMod Extension" + VALUE "LegalCopyright", "Copyright (c) 2004-2022, AlliedModders LLC" + VALUE "OriginalFilename", BINARY_NAME + VALUE "ProductName", "SourceMod Extension" + VALUE "ProductVersion", SM_VERSION_STRING + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED