-
-
Notifications
You must be signed in to change notification settings - Fork 18
251 lines (222 loc) · 8.71 KB
/
Copy pathMasterBuild.yaml
File metadata and controls
251 lines (222 loc) · 8.71 KB
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
name: Master Build
on:
push:
tags:
- 'v2.*'
jobs:
create_release:
name: Prepare a new release
runs-on: ubuntu-latest
outputs:
create_release_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Get the commit hash.
id: commit
uses: prompt/actions-commit-hash@v3
- name: Create release on repository
id: create_release
uses: actions/create-release@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: "autobuild-${{ steps.commit.outputs.short }}"
release_name: "Native Libraries (Autobuild ${{ steps.commit.outputs.short }})"
body: "Automated build of the ENet native libraries, up to date with the latest commits. The attached per-platform archives contain ENet for use in both production and debugging environments."
draft: false
prerelease: false
# START LINUX BUILD JOB
build_linux64:
name: Linux x86_64
needs: create_release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Create temporary staging directories
run: |
mkdir -p ${{ runner.workspace }}/Staging
mkdir -p ${{ runner.workspace }}/Work/ReleaseBuild
mkdir -p ${{ runner.workspace }}/Work/DebugBuild
- name: Compile ENet (non-debug)
uses: ashutoshvarma/action-cmake-build@master
with:
build-dir: ${{ runner.workspace }}/Work/ReleaseBuild
cc: gcc
cxx: g++
build-type: Release
configure-options: -DENET_DEBUG=0
- name: Stash and compress production library
run: |
zip -j -9 ${{ runner.workspace }}/Staging/Release.zip ${{ runner.workspace }}/Work/ReleaseBuild/libenet.so
- name: Compile ENet (debug)
uses: ashutoshvarma/action-cmake-build@master
with:
build-dir: ${{ runner.workspace }}/Work/DebugBuild
cc: gcc
cxx: g++
build-type: Debug
configure-options: -DENET_DEBUG=1
- name: Stash compiled libraries
run: |
zip -j -9 ${{ runner.workspace }}/Staging/Debug.zip ${{ runner.workspace }}/Work/DebugBuild/libenet.so
- name: Upload non-debug library
id: upload-release-asset
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.create_release_url }}
asset_path: ${{ runner.workspace }}/Staging/Release.zip
asset_name: libenet-release-linux-x86_64.zip
asset_content_type: application/zip
- name: Upload debug library
id: upload-debug-asset
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.create_release_url }}
asset_path: ${{ runner.workspace }}/Staging/Debug.zip
asset_name: libenet-debug-linux-x86_64.zip
asset_content_type: application/zip
# END LINUX BUILD JOB
# START APPLE MACOS BUILD JOB
# Need to revise this - future Coburn job.
# build_apple_64:
# name: MacOS
# needs: create_release
# runs-on: macos-latest
# steps:
# - name: Setup XCode
# uses: maxim-lobanov/setup-xcode@v1
# with:
# xcode-version: latest-stable
#
# - name: Grab the latest copy of the repository.
# uses: actions/checkout@v2
#
# - name: Run automated build script.
# run: |
# cd "${{ runner.workspace }}/ENet-CSharp" && bash BuildScripts/apple-mac.command
#
# - name: Upload release library
# id: upload-release-asset
# uses: actions/upload-release-asset@master
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.create_release_url }}
# asset_path: ${{ runner.workspace }}/ENet-CSharp/ReleaseOut/Release.zip
# asset_name: libenet-release-macOS.zip
# asset_content_type: application/zip
#
# - name: Upload debug library
# id: upload-debug-asset
# uses: actions/upload-release-asset@master
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.create_release_url }}
# asset_path: ${{ runner.workspace }}/ENet-CSharp/DebugOut/Debug.zip
# asset_name: libenet-debug-macOS.zip
# asset_content_type: application/zip
#
# END APPLE MACOS BUILD JOB
build_windows_64:
name: Windows x86_64
needs: create_release
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Compile ENet (non-debug)
uses: ashutoshvarma/action-cmake-build@master
with:
build-dir: ${{ runner.workspace }}/ReleaseBuild
build-type: Release
configure-options: -DENET_DEBUG=0
- name: List release build directory
run: |
dir "${{ runner.workspace }}/ReleaseBuild/Release"
- name: Compile ENet (debug)
uses: ashutoshvarma/action-cmake-build@master
with:
build-dir: ${{ runner.workspace }}/DebugBuild
build-type: Debug
configure-options: -DENET_DEBUG=1
- name: List debug build directory
run: |
dir "${{ runner.workspace }}/DebugBuild/Debug"
- name: Archive release library
uses: thedoctor0/zip-release@0.7.5
with:
type: 'zip'
directory: '${{ runner.workspace }}'
path: '${{ runner.workspace }}/ReleaseBuild/Release'
filename: 'Release.zip'
exclusions: '*.exp *.lib *.pdb'
- name: Archive debug library
uses: thedoctor0/zip-release@0.7.5
with:
type: 'zip'
directory: '${{ runner.workspace }}'
path: '${{ runner.workspace }}/DebugBuild/Debug'
filename: 'Debug.zip'
exclusions: 'enet.exp enet.lib enet.pdb'
- name: Upload release library
id: upload-release-asset
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.create_release_url }}
asset_path: ${{ runner.workspace }}/Release.zip
asset_name: libenet-release-win64.zip
asset_content_type: application/zip
- name: Upload debug library
id: upload-debug-asset
uses: actions/upload-debug-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.create_release_url }}
asset_path: ${{ runner.workspace }}/Debug.zip
asset_name: libenet-debug-win64.zip
asset_content_type: application/zip
# START APPLE IOS BUILD JOB
build_apple_mobile:
name: Build for Apple iOS
needs: create_release
runs-on: macos-latest
steps:
- name: Setup XCode
uses: maxim-lobanov/setup-xcode@master
with:
xcode-version: latest-stable
- name: Grab the latest copy of the repository.
uses: actions/checkout@v2
- name: Run the iOS build script
run: |
cd "$GITHUB_WORKSPACE/BuildScripts" && bash ./apple-ios.command
- name: Upload release library
id: upload-release-asset
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.create_release_url }}
asset_path: ${{ runner.workspace }}/ENet-CSharp/BuildScripts/Binaries/libenet-combo-iOS.zip
asset_name: libenet-combo-iOS.zip
asset_content_type: application/zip
# END APPLE IOS BUILD JOB
# START ANDROID BUILD JOB
# build_android:
# name: Build for Android
# needs: create_release
# runs-on: ubuntu-latest
# steps:
# - name: Grab the latest copy of the repository.
# uses: actions/checkout@v2
# Stubbed!
# END ANDROID BUILD JOB
# end of build jobs.