1+ name : ubuntu build workflows
2+
3+ on :
4+ push :
5+ branches :
6+ - ' develop'
7+ paths :
8+ - ' XEngine_Source/**'
9+ - ' XEngine_Release/**'
10+ - ' .github/**'
11+
12+ jobs :
13+ build :
14+ strategy :
15+ fail-fast : false
16+ matrix :
17+ include :
18+ - os : ubuntu-22.04
19+ - os : ubuntu-24.04
20+ - os : ubuntu-22.04-arm
21+ - os : ubuntu-24.04-arm
22+ runs-on : ${{ matrix.os }}
23+
24+ steps :
25+ - name : Checkout main repository code
26+ uses : actions/checkout@v4
27+ with :
28+ ref : ' develop'
29+
30+ - name : Checkout dependency repository (xengine)
31+ uses : actions/checkout@v4
32+ with :
33+ repository : libxengine/libxengine
34+ path : libxengine
35+
36+ - name : sub module checkout (opensource)
37+ run : |
38+ git submodule init
39+ git submodule update
40+
41+ - name : Set up Dependency ubuntu24.04 x86-64 Environment
42+ if : matrix.os == 'ubuntu-24.04'
43+ run : |
44+ cd libxengine
45+ chmod 777 *
46+ sudo ./XEngine_LINEnv.sh -i 3
47+ - name : Set up Dependency ubuntu22.04 x86-64 Environment
48+ if : matrix.os == 'ubuntu-22.04'
49+ run : |
50+ cd libxengine
51+ chmod 777 *
52+ sudo ./XEngine_LINEnv.sh -i 0
53+
54+ latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name)
55+ wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_UBuntu_22.04_x86-64.zip
56+ unzip ./XEngine_UBuntu_22.04_x86-64.zip -d ./XEngine_UBuntu_22.04_x86-64
57+ cd XEngine_UBuntu_22.04_x86-64
58+
59+ sudo cp -rf ./XEngine_Include /usr/local/include
60+ sudo find ./XEngine_Linux -name "*.so" -exec cp {} /usr/local/lib \;
61+ sudo ldconfig
62+ - name : Set up Dependency ubuntu22.04 arm Environment
63+ if : matrix.os == 'ubuntu-22.04-arm'
64+ run : |
65+ cd libxengine
66+ chmod 777 *
67+ sudo ./XEngine_LINEnv.sh -i 0
68+
69+ latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name)
70+ wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_UBuntu_22.04_Arm64.zip
71+ unzip ./XEngine_UBuntu_22.04_Arm64.zip -d ./XEngine_UBuntu_22.04_Arm64
72+ cd XEngine_UBuntu_22.04_Arm64
73+
74+ sudo cp -rf ./XEngine_Include /usr/local/include
75+ sudo find ./XEngine_Linux -name "*.so" -exec cp {} /usr/local/lib \;
76+ sudo ldconfig
77+ - name : Set up Dependency ubuntu24.04 arm Environment
78+ if : matrix.os == 'ubuntu-24.04-arm'
79+ run : |
80+ cd libxengine
81+ chmod 777 *
82+ sudo ./XEngine_LINEnv.sh -i 0
83+
84+ latest_tag=$(curl -s https://api.github.com/repos/libxengine/libxengine/releases/latest | jq -r .tag_name)
85+ wget https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_UBuntu_24.04_Arm64.zip
86+ unzip ./XEngine_UBuntu_24.04_Arm64.zip -d ./XEngine_UBuntu_24.04_Arm64
87+ cd XEngine_UBuntu_24.04_Arm64
88+
89+ sudo cp -rf ./XEngine_Include /usr/local/include
90+ sudo find ./XEngine_Linux -name "*.so" -exec cp {} /usr/local/lib \;
91+ sudo ldconfig
92+
93+ - name : make
94+ run : |
95+ cd XEngine_Source
96+ make
97+ make FLAGS=InstallAll
98+ make FLAGS=CleanAll
99+
100+ make RELEASE=1
101+ make FLAGS=InstallAll
102+ make FLAGS=CleanAll
103+ cd ..
104+ - name : test
105+ run : |
106+ cd XEngine_Release
107+ ./XEngine_ProxyServiceApp -t
108+
109+ - name : Upload folder as artifact with ubuntu22.04 x86-64
110+ if : matrix.os == 'ubuntu-22.04'
111+ uses : actions/upload-artifact@v4
112+ with :
113+ name : XEngine_ProxyServiceApp-Ubuntu_22.04_x86_64
114+ path : XEngine_Release/
115+ retention-days : 1
116+ - name : Upload folder as artifact with ubuntu24.04 x86-64
117+ if : matrix.os == 'ubuntu-24.04'
118+ uses : actions/upload-artifact@v4
119+ with :
120+ name : XEngine_ProxyServiceApp-Ubuntu_24.04_x86_64
121+ path : XEngine_Release/
122+ retention-days : 1
123+ - name : Upload folder as artifact with ubuntu22.04 Arm64
124+ if : matrix.os == 'ubuntu-22.04-arm'
125+ uses : actions/upload-artifact@v4
126+ with :
127+ name : XEngine_ProxyServiceApp-Ubuntu_22.04_Arm64
128+ path : XEngine_Release/
129+ retention-days : 1
130+ - name : Upload folder as artifact with ubuntu24.04 Arm64
131+ if : matrix.os == 'ubuntu-24.04-arm'
132+ uses : actions/upload-artifact@v4
133+ with :
134+ name : XEngine_ProxyServiceApp-Ubuntu_24.04_Arm64
135+ path : XEngine_Release/
136+ retention-days : 1
0 commit comments