Skip to content

Commit 8172d5d

Browse files
author
Hedgehog Fog
committed
added build workflow
1 parent 0686e0b commit 8172d5d

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed

.github/workflows/build.yml

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
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

Comments
 (0)