Skip to content
This repository was archived by the owner on Dec 19, 2025. It is now read-only.

Commit 86b62ab

Browse files
committed
0.0.1? nuh not now bro, Just test build | Refactor code structure for improved readability and maintainability
1 parent 8a6948d commit 86b62ab

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1355
-1177
lines changed

.github/workflows/main.yml

Lines changed: 108 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -125,19 +125,12 @@ jobs:
125125
with:
126126
name: macOS Build
127127
path: HyperCodeEngine-macOS.zip
128-
129-
buildAndroid: # I lazy to make facking this shit.
128+
setup-android-deps:
130129
runs-on: ubuntu-latest
131130
if: false
132131
needs: [wait]
133132
steps:
134-
- uses: actions/checkout@v4
135-
- uses: actions/download-artifact@v4
136-
with:
137-
name: Version
138-
139-
# Install required dependencies first
140-
- name: Install Dependencies
133+
- name: Install System Dependencies
141134
run: |
142135
sudo dpkg --add-architecture i386
143136
sudo apt-get update
@@ -163,14 +156,26 @@ jobs:
163156
uses: jwlawson/actions-setup-cmake@v2.0.2
164157
with:
165158
cmake-version: '3.26.x'
159+
- name: Cache Dependencies
160+
uses: actions/cache@v4
161+
with:
162+
path: |
163+
/usr/lib/i386-linux-gnu
164+
/usr/lib32
165+
key: android-deps-${{ runner.os }}-${{ hashFiles('.github/workflows/main.yml') }}
166166

167-
- name: Setup JNI Environment
168-
run: |
169-
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
170-
echo "JDK_HOME=$JAVA_HOME" >> $GITHUB_ENV
171-
echo "CPPFLAGS=-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" >> $GITHUB_ENV
172-
echo "CFLAGS=-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" >> $GITHUB_ENV
173-
167+
setup-android-env:
168+
runs-on: ubuntu-latest
169+
if: false
170+
needs: [setup-android-deps]
171+
steps:
172+
- uses: actions/checkout@v4
173+
- name: Setup Java JDK
174+
uses: actions/setup-java@main
175+
with:
176+
distribution: 'zulu'
177+
java-version: '18'
178+
174179
- name: Setup Android NDK
175180
id: setup-ndk
176181
uses: nttld/setup-ndk@main
@@ -184,22 +189,26 @@ jobs:
184189

185190
- name: Set Android Environment Variables
186191
run: |
192+
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
193+
echo "JDK_HOME=$JAVA_HOME" >> $GITHUB_ENV
194+
echo "CPPFLAGS=-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" >> $GITHUB_ENV
195+
echo "CFLAGS=-I$JAVA_HOME/include -I$JAVA_HOME/include/linux" >> $GITHUB_ENV
187196
echo "ANDROID_HOME=$ANDROID_SDK_ROOT" >> $GITHUB_ENV
188197
echo "ANDROID_SDK=$ANDROID_SDK_ROOT" >> $GITHUB_ENV
189198
echo "ANDROID_NDK_HOME=${{ steps.setup-ndk.outputs.ndk-path }}" >> $GITHUB_ENV
190199
echo "ANDROID_NDK_ROOT=${{ steps.setup-ndk.outputs.ndk-path }}" >> $GITHUB_ENV
191200
echo "ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT" >> $GITHUB_ENV
192201
193-
- name: Setup Java JDK
194-
uses: actions/setup-java@main
195-
with:
196-
distribution: 'zulu'
197-
java-version: '18'
198-
202+
setup-android-haxe:
203+
runs-on: ubuntu-latest
204+
if: false
205+
needs: [setup-android-env]
206+
steps:
207+
- uses: actions/checkout@v4
199208
- uses: krdlab/setup-haxe@master
200209
with:
201210
haxe-version: ${{ env.HAXE_VERSION }}
202-
211+
203212
- name: Setup Haxe Dependencies
204213
run: |
205214
haxelib setup ~/haxelib
@@ -216,6 +225,16 @@ jobs:
216225
haxelib run lime config ANDROID_NDK_ROOT ${{ steps.setup-ndk.outputs.ndk-path }}
217226
haxelib run lime setup android -y
218227
228+
buildAndroid:
229+
runs-on: ubuntu-latest
230+
if: false
231+
needs: [setup-android-haxe]
232+
steps:
233+
- uses: actions/checkout@v4
234+
- uses: actions/download-artifact@v4
235+
with:
236+
name: Version
237+
219238
- name: Build Android
220239
run: |
221240
haxelib run lime rebuild hxcpp
@@ -252,8 +271,7 @@ jobs:
252271
with:
253272
name: iOS Build
254273
path: HyperCodeEngine-iOS.zip
255-
256-
notifyDiscord:
274+
check-build-status:
257275
runs-on: ubuntu-latest
258276
if: always()
259277
needs:
@@ -263,15 +281,15 @@ jobs:
263281
- buildAndroid
264282
- buildiOS
265283
- version
284+
outputs:
285+
status_linux: ${{ steps.check.outputs.linux }}
286+
status_windows: ${{ steps.check.outputs.windows }}
287+
status_mac: ${{ steps.check.outputs.mac }}
288+
status_android: ${{ steps.check.outputs.android }}
289+
status_ios: ${{ steps.check.outputs.ios }}
290+
all_success: ${{ steps.check.outputs.all_success }}
266291
steps:
267-
- name: Notify Discord
268-
env:
269-
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL }}
270-
RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
271-
COMMIT_URL: https://github.com/${{ github.repository }}/commit/${{ github.sha }}
272-
BRANCH: ${{ github.ref_name }}
273-
COMMIT_MESSAGE: ${{ github.event.head_commit.message || github.event.pull_request.title || 'Manual Trigger' }}
274-
VERSION: ${{ needs.version.outputs.version_tag }}
292+
- id: check
275293
run: |
276294
check() {
277295
case "$1" in
@@ -280,23 +298,44 @@ jobs:
280298
*) echo "❌ Failed";;
281299
esac
282300
}
301+
302+
echo "linux=$(check "${{ needs.buildLinux.result }}")" >> "$GITHUB_OUTPUT"
303+
echo "windows=$(check "${{ needs.buildWindows.result }}")" >> "$GITHUB_OUTPUT"
304+
echo "mac=$(check "${{ needs.buildMac.result }}")" >> "$GITHUB_OUTPUT"
305+
echo "android=$(check "${{ needs.buildAndroid.result }}")" >> "$GITHUB_OUTPUT"
306+
echo "ios=$(check "${{ needs.buildiOS.result }}")" >> "$GITHUB_OUTPUT"
307+
308+
if [[ "${{ needs.buildLinux.result }}" == "success" ]] && \
309+
[[ "${{ needs.buildWindows.result }}" == "success" ]] && \
310+
[[ "${{ needs.buildMac.result }}" == "success" ]] && \
311+
[[ "${{ needs.buildAndroid.result }}" == "skipped" ]] && \
312+
[[ "${{ needs.buildiOS.result }}" == "skipped" ]]; then
313+
echo "all_success=true" >> "$GITHUB_OUTPUT"
314+
else
315+
echo "all_success=false" >> "$GITHUB_OUTPUT"
316+
fi
283317
284-
STATUS_LINUX=$(check "${{ needs.buildLinux.result }}")
285-
STATUS_WIN=$(check "${{ needs.buildWindows.result }}")
286-
STATUS_MAC=$(check "${{ needs.buildMac.result }}")
287-
STATUS_ANDROID=$(check "${{ needs.buildAndroid.result }}")
288-
STATUS_IOS=$(check "${{ needs.buildiOS.result }}")
289-
290-
TITLE="✅ All Builds Succeeded"
291-
COLOR=65280
292-
for status in "$STATUS_LINUX" "$STATUS_WIN" "$STATUS_MAC" "$STATUS_ANDROID" "$STATUS_IOS"; do
293-
if [[ "$status" == "❌ Failed" ]]; then
294-
TITLE="❌ Build Failure Detected"
295-
COLOR=16711680
296-
break
297-
fi
298-
done
299-
318+
notify-discord-status:
319+
runs-on: ubuntu-latest
320+
needs: [check-build-status, version]
321+
steps:
322+
- name: Notify Discord
323+
env:
324+
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL }}
325+
RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
326+
COMMIT_URL: https://github.com/${{ github.repository }}/commit/${{ github.sha }}
327+
BRANCH: ${{ github.ref_name }}
328+
COMMIT_MESSAGE: ${{ github.event.head_commit.message || github.event.pull_request.title || 'Manual Trigger' }}
329+
VERSION: ${{ needs.version.outputs.version_tag }}
330+
STATUS_LINUX: ${{ needs.check-build-status.outputs.status_linux }}
331+
STATUS_WIN: ${{ needs.check-build-status.outputs.status_windows }}
332+
STATUS_MAC: ${{ needs.check-build-status.outputs.status_mac }}
333+
STATUS_ANDROID: ${{ needs.check-build-status.outputs.status_android }}
334+
STATUS_IOS: ${{ needs.check-build-status.outputs.status_ios }}
335+
run: |
336+
TITLE="${{ needs.check-build-status.outputs.all_success == 'true' && '✅ All Builds Succeeded' || '❌ Build Failure Detected' }}"
337+
COLOR="${{ needs.check-build-status.outputs.all_success == 'true' && '65280' || '16711680' }}"
338+
300339
CONTENT="🖥️ **Desktop Builds**\n• Linux: $STATUS_LINUX\n• Windows: $STATUS_WIN\n• macOS: $STATUS_MAC\n\n📱 **Mobile Builds**\n• Android: $STATUS_ANDROID\n• iOS: $STATUS_IOS"
301340
302341
curl -H "Content-Type: application/json" -X POST -d "{
@@ -316,26 +355,18 @@ jobs:
316355
}]
317356
}" "$DISCORD_WEBHOOK"
318357
319-
UploadToGitHubReleases:
358+
prepare-release:
320359
runs-on: ubuntu-latest
321360
permissions:
322361
contents: write
323362
needs:
324-
- buildLinux
325-
- buildWindows
326-
- buildMac
327-
- buildAndroid
328-
- buildiOS
363+
- check-build-status
329364
- version
330-
if: always()
365+
if: needs.check-build-status.outputs.all_success == 'true'
366+
outputs:
367+
release_id: ${{ steps.create_release.outputs.id }}
331368
steps:
332-
- name: Checkout code
333-
uses: actions/checkout@v4
334-
- name: Download artifacts
335-
uses: actions/download-artifact@v4
336-
with:
337-
path: builds
338-
- name: Create Release
369+
- name: Create GitHub Release
339370
id: create_release
340371
uses: actions/create-release@v1.1.4
341372
env:
@@ -380,10 +411,21 @@ jobs:
380411
— HyperCode Engine AutoBuilder
381412
draft: false
382413
prerelease: true
383-
- name: List files for upload
384-
run: ls -R builds
385414

386-
- name: Upload Artifacts
415+
upload-artifacts:
416+
runs-on: ubuntu-latest
417+
permissions:
418+
contents: write
419+
needs: [prepare-release, version]
420+
if: needs.prepare-release.outputs.release_id != ''
421+
steps:
422+
- name: Download all build artifacts
423+
uses: actions/download-artifact@v4
424+
with:
425+
path: builds
426+
- name: List downloaded files
427+
run: ls -R builds
428+
- name: Upload Release Artifacts
387429
uses: softprops/action-gh-release@v2.2.2
388430
with:
389431
tag_name: ${{ needs.version.outputs.version_tag }}

0 commit comments

Comments
 (0)