-
-
Notifications
You must be signed in to change notification settings - Fork 4
115 lines (96 loc) · 4.35 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
name: Compile and Release
on:
push:
branches:
- master
env:
PLUGIN_NAME: mitm
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
sm-version: ['1.12.x']
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set environment variables
run: echo "SCRIPTS_PATH=$(pwd)" >> $GITHUB_ENV
- name: Create include directory
run: mkdir -p ${{ env.SCRIPTS_PATH }}/addons/sourcemod/scripting/include
- name: Download repositories
run: |
declare -A repos=(
["https://github.com/TF2-DMB/CBaseNPC"]="addons/sourcemod/scripting/include"
["https://github.com/nosoop/SMExt-SourceScramble"]="addons/sourcemod/scripting/include"
["https://github.com/FortyTwoFortyTwo/VScript"]="addons/sourcemod/scripting/include"
["https://github.com/Scags/SM-Memory"]="pawn/sourcemod/scripting/include"
["https://github.com/haxtonsale/LoadSoundScript"]="sourcepawn"
["https://github.com/nosoop/SM-TFEconData"]="addons/sourcemod/scripting/include"
["https://github.com/FlaminSarge/tf2attributes"]="addons/sourcemod/scripting/include"
["https://github.com/nosoop/SM-TFUtils"]="addons/sourcemod/scripting/include"
)
for repo in "${!repos[@]}"; do
repo_name=$(basename "$repo")
include_path="${repos[$repo]}"
echo "Cloning $repo..."
git clone --depth 1 "$repo" "$repo_name"
find "$repo_name" -type f -name "*.inc" | while read -r file; do
relative_path="${file#*/scripting/include/}"
mkdir -p "${{ env.SCRIPTS_PATH }}/addons/sourcemod/scripting/include/$(dirname "$relative_path")"
mv "$file" "${{ env.SCRIPTS_PATH }}/addons/sourcemod/scripting/include/$relative_path"
done
rm -rf "$repo_name"
done
- name: Download include files
run: |
declare -A includes=(
["https://raw.githubusercontent.com/DoctorMcKay/sourcemod-plugins/master/scripting/include/morecolors.inc"]="addons/sourcemod/scripting/include/morecolors.inc"
["https://raw.githubusercontent.com/Mikusch/PluginStateManager/master/addons/sourcemod/scripting/include/pluginstatemanager.inc"]="addons/sourcemod/scripting/include/pluginstatemanager.inc"
)
for url in "${!includes[@]}"; do
target_path="${includes[$url]}"
mkdir -p "$(dirname "$target_path")"
echo "Downloading $url -> $target_path"
curl -sSL "$url" -o "$target_path"
done
- name: Setup SourcePawn Compiler ${{ matrix.sm-version }}
id: setup_sp
uses: rumblefrog/setup-sp@master
with:
version: ${{ matrix.sm-version }}
version-file: ./addons/sourcemod/scripting/${{ env.PLUGIN_NAME }}.sp
define-name: PLUGIN_VERSION
- name: Compile plugins
run: |
mkdir -p ../plugins
spcomp -v2 -E -i "include" -o "../plugins/${{ env.PLUGIN_NAME }}.smx" ${{ env.PLUGIN_NAME }}.sp
echo "===OUT FILES==="
ls ../plugins
echo "===VERSION==="
echo ${{ steps.setup_sp.outputs.plugin-version }}
working-directory: ${{ env.SCRIPTS_PATH }}/addons/sourcemod/scripting
- name: Install zip
uses: montudor/action-zip@v1
- name: Zip output
run: |
zip -qq -y -r ${{ github.event.repository.name }}.zip configs plugins scripting extensions gamedata translations data
working-directory: ${{ env.SCRIPTS_PATH }}/addons/sourcemod
- name: List files in the directory
run: ls -R
working-directory: ${{ env.SCRIPTS_PATH }}/addons/sourcemod
- name: List files in the zip
run: unzip -l ${{ github.event.repository.name }}.zip
working-directory: ${{ env.SCRIPTS_PATH }}/addons/sourcemod
- name: Create Release
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.setup_sp.outputs.plugin-version }}
artifacts: addons/sourcemod/${{ github.event.repository.name }}.zip
draft: true
allowUpdates: true
updateOnlyUnreleased: true
skipIfReleaseExists: true