build: workflow from hell #1

Merged
Future merged 15 commits from build/ci into main 2024-03-20 17:11:36 +00:00
5 changed files with 85 additions and 15 deletions

23
.gitea/scripts/ci.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/bash
# setup
mkdir build
cd build
mkdir iw4
mkdir iw5
cd ..
# ready for release
cp iw4/scripts/mp/_jump.gsc build/iw4
# replace gsc extension with c. It will make gcc very happy
mv iw5/scripts/mp/_jump.gsc iw5/scripts/mp/_jump.c
# perform macro expansion
gcc -D_UTILITY_DEBUG -DIW5 -DCI -E "iw5/scripts/mp/_jump.c" -o _jump.in
# remove things gcc added to the file that we do not need
python3 .gitea/scripts/clean.py _jump.in _jump.gsc
# ready for release
mv _jump.gsc build/iw5/_jump.gsc

20
.gitea/scripts/clean.py Normal file
View File

@ -0,0 +1,20 @@
import sys
def erase_commented_lines(filename, out):
with open(filename, 'r') as file:
lines = file.readlines()
lines = [line for line in lines if not line.startswith('#')]
with open(out, 'w') as file:
file.writelines(lines)
def main():
if len(sys.argv) != 3:
print(f'Usage: python3 {sys.argv[0]} <in> <out>')
return
erase_commented_lines(sys.argv[1], sys.argv[2])
if __name__ == '__main__':
main()

25
.gitea/workflows/ci.yml Normal file
View File

@ -0,0 +1,25 @@
name: Build
on: [push]
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Check out files
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
lfs: false
- name: Create release
run: |
.gitea/scripts/ci.sh
- name: Upload release
uses: actions/upload-artifact@v3
with:
name: release
path: |
build

View File

@ -4,7 +4,11 @@
#define TOOL
#endif
#if defined(TOOL)
#inline scripts\mp\_utility;
#else
#include "_utility.gsh"
#endif
GENERIC_INIT;
@ -14,7 +18,9 @@ onPlayerConnect()
{
level waittill( "connected", player );
#if defined(TOOL)
waittillframeend;
#endif
BOT_CHK( player );
@ -125,6 +131,6 @@ onPlayerSpawned()
{
self waittill( "spawned_player" );
self setPerk( "specialty_marathon", true, false );
self setPerk( "specialty_marathon", true, false );
}
}

View File

@ -40,25 +40,21 @@
/* Do not use the + to concatenate strings, let the GSC VM do it for you */
/* Other clients will have print available */
#if defined(IW4MP)
#define PRINT_FUNC printConsole
#define PRINT_FUNC_NAME printConsole
#else
#define PRINT_FUNC print
#endif
#if !defined(TOOL)
PRINT_FUNC( format __VA_OPT__(,) __VA_ARGS__ )
#define PRINT_FUNC_NAME print
#endif
#ifdef _UTILITY_DEBUG
#define _VERIFY( cond, msg ) \
assertEx(cond, msg)
#define _VERIFY(cond, msg) \
assertEx( cond, msg )
#define DEBUG_PRINT(msg) \
PRINT_FUNC(msg)
#define DEBUG_PRINT(msg) \
PRINT_FUNC_NAME( msg )
#else
/* The following are "empty" defines with gsc-tool */
#define _VERIFY(cond, msg)
#define DEBUG_PRINT(msg)
/* The following are "empty" defines with gsc-tool */
#define _VERIFY(cond, msg)
#define DEBUG_PRINT(msg)
#endif
/* Use Cbuf. Should use the + to concatenate strings before using this */
@ -106,7 +102,7 @@
#endif
#if !defined(TOOL)
#define PLAYER_NOTIFY_CMD(ent, str, action) ent notifyOnPlayerCommand( str, action )
#define PLAYER_NOTIFY_CMD(ent, str, action) ent notifyOnPlayerCommand( str, action )
#endif
/* Tweak as necessary. Can be return, continue or break */