1+ # This is a basic workflow to help you get started with Actions
2+
3+ name : CI
4+
5+ on :
6+ push :
7+ branches : [ master ]
8+ workflow_dispatch :
9+ branches : [ master ]
10+
11+ jobs :
12+ build :
13+ runs-on : ubuntu-latest
14+ steps :
15+ - uses : actions/checkout@v2
16+ - name : Install Node.js
17+ uses : actions/setup-node@v1
18+ with :
19+ node-version : 12
20+ - name : Install Zip
21+ uses : montudor/action-zip@v0.1.0
22+ - name : Download thirdparty
23+ run : |
24+ mkdir downloads
25+ wget https://www.amxmodx.org/release/amxmodx-1.8.2-base-linux.tar.gz -P ./downloads
26+ wget https://www.amxmodx.org/release/amxmodx-1.8.2-cstrike-linux.tar.gz -P ./downloads
27+ wget https://github.com/s1lentq/reapi/releases/download/5.12.0.192/reapi_5.12.0.192-dev.zip -P ./downloads
28+ wget 'https://svn.aghl.ru:8443/svn/s1lentq/!svn/ver/415/AMXX%20modules/RoundControl/AMXX%20Pawn/include/roundcontrol.inc' --no-check-certificate -P ./downloads
29+ - name : Setup Build Variables
30+ id : buildvars
31+ uses : actions/github-script@v3
32+ with :
33+ github-token : ${{secrets.GITHUB_TOKEN}}
34+ script : |
35+ try {
36+ const package = require(`${process.env.GITHUB_WORKSPACE}/package.json`);
37+ ['name', 'version', 'description', 'author']
38+ .forEach(k => core.setOutput(k, package[k]));
39+ const tagVersion = package.version.replace(/\./g, '');
40+ core.setOutput('tagversion', tagVersion);
41+ core.setOutput('tagname', `${package.name}-${tagVersion}`);
42+ core.setOutput('releasename', `${package.description} Release v${package.version}`);
43+ } catch (err) {
44+ core.setFailed(err.message);
45+ }
46+ - name : Setup compiler
47+ run : |
48+ mkdir ./compiler
49+ tar --strip-components=3 -zxf ./downloads/amxmodx-1.8.2-base-linux.tar.gz -C ./compiler addons/amxmodx/scripting
50+ tar --strip-components=3 -zxf ./downloads/amxmodx-1.8.2-cstrike-linux.tar.gz -C ./compiler addons/amxmodx/scripting
51+ mkdir -p ./thirdparty/reapi
52+ unzip ./downloads/reapi_5.12.0.192-dev.zip -d ./thirdparty/reapi
53+ mkdir -p ./thirdparty/round-control/addons/amxmodx/scripting/include
54+ cp ./downloads/roundcontrol.inc ./thirdparty/round-control/addons/amxmodx/scripting/include/roundcontrol.inc
55+ - name : Install Dependencies
56+ run : npm install
57+ - name : Build project
58+ run : npm run build
59+ - name : Pack bundles
60+ run : npm run pack
61+ - name : Create Release
62+ id : create_release
63+ uses : actions/create-release@v1
64+ env :
65+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
66+ with :
67+ tag_name : ${{ steps.buildvars.outputs.tagname }}
68+ release_name : ${{ steps.buildvars.outputs.releasename }}
69+ draft : false
70+ prerelease : false
71+ - name : Upload Release Addons
72+ id : upload-release-addons
73+ uses : actions/upload-release-asset@v1
74+ env :
75+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
76+ with :
77+ upload_url : ${{ steps.create_release.outputs.upload_url }}
78+ asset_path : ./dist/bundles/full/hwn-${{ steps.buildvars.outputs.tagversion }}-addons.zip
79+ asset_name : hwn-${{ steps.buildvars.outputs.tagversion }}-addons.zip
80+ asset_content_type : application/zip
81+ - name : Upload Release Addons ReAPI
82+ id : upload-release-addons-reapi
83+ uses : actions/upload-release-asset@v1
84+ env :
85+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
86+ with :
87+ upload_url : ${{ steps.create_release.outputs.upload_url }}
88+ asset_path : ./dist/bundles/full/hwn-${{ steps.buildvars.outputs.tagversion }}-addons-reapi.zip
89+ asset_name : hwn-${{ steps.buildvars.outputs.tagversion }}-addons-reapi.zip
90+ asset_content_type : application/zip
91+ - name : Upload Release Resources
92+ id : upload-release-resources
93+ uses : actions/upload-release-asset@v1
94+ env :
95+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
96+ with :
97+ upload_url : ${{ steps.create_release.outputs.upload_url }}
98+ asset_path : ./dist/bundles/full/hwn-${{ steps.buildvars.outputs.tagversion }}-resources.zip
99+ asset_name : hwn-${{ steps.buildvars.outputs.tagversion }}-resources.zip
100+ asset_content_type : application/zip
101+ - name : Upload Release SDK
102+ id : upload-release-sdk
103+ uses : actions/upload-release-asset@v1
104+ env :
105+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
106+ with :
107+ upload_url : ${{ steps.create_release.outputs.upload_url }}
108+ asset_path : ./dist/bundles/sdk/hwn-${{ steps.buildvars.outputs.tagversion }}-sdk.zip
109+ asset_name : hwn-${{ steps.buildvars.outputs.tagversion }}-sdk.zip
110+ asset_content_type : application/zip
111+ - name : Cleanup
112+ run : |
113+ rm -rf ./compiler
114+ rm -rf ./thirdparty
115+ rm -rf ./dist
116+ rm -rf ./downloads
0 commit comments