This repository was archived by the owner on Dec 19, 2025. It is now read-only.
Indev 23042025 #25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Notify | |
| description: Build the project for different platforms and notify via Discord | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| workflow_dispatch: | |
| env: | |
| ARGS: "-D officialBuild -D NotDeveloper" | |
| HAXE_VERSION : 4.3.6 | |
| jobs: | |
| setup-haxe: | |
| name: Setup and Cache Haxe Dependencies | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/cache@v4 | |
| with: | |
| path: ~/.haxelib | |
| key: ${{ runner.os }}-haxe-${{ hashFiles('**/*.hxml') }} | |
| buildLinux: | |
| name: Build on Linux | |
| runs-on: ubuntu-latest | |
| needs: setup-haxe | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4.1.7 | |
| - name: Setup Haxe | |
| uses: krdlab/setup-haxe@master | |
| with: | |
| haxe-version: ${{ env.HAXE_VERSION }} | |
| - name: Install Dependencies & Setup | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libvlc-dev libvlccore-dev | |
| haxelib setup ~/haxelib | |
| haxelib install hxcpp --quiet | |
| chmod +x ./setup/unix.sh | |
| ./setup/unix.sh | |
| - name: Create Version Tag | |
| run: echo "${{ github.run_id }}" > VERSION | |
| - name: Compile for Linux | |
| run: haxelib run lime build Project.xml linux --app-version="4.0.0-${{ github.run_id }}" $ARGS | |
| - name: Upload Artifact | |
| uses: actions/upload-artifact@v4.3.4 | |
| with: | |
| name: linuxBuild | |
| path: export/release/linux/bin | |
| buildWindows64: | |
| name: Build on Windows (64-bit) | |
| runs-on: windows-latest | |
| needs: setup-haxe | |
| steps: | |
| - uses: actions/checkout@v4.1.7 | |
| - uses: krdlab/setup-haxe@master | |
| with: | |
| haxe-version: ${{ env.HAXE_VERSION }} | |
| - run: | | |
| haxelib setup C:/haxelib | |
| haxelib install hxcpp --quiet | |
| setup\windows.bat | |
| shell: cmd | |
| - run: echo "${{ github.run_id }}" > VERSION | |
| shell: bash | |
| - run: haxelib run lime build windows --app-version="4.0.0-${{ github.run_id }}" $ARGS | |
| - uses: actions/upload-artifact@v4.3.4 | |
| with: | |
| name: windowsBuild64 | |
| path: export/release/windows/bin | |
| buildWindows32: | |
| name: Build on Windows (32-bit) | |
| runs-on: windows-latest | |
| needs: setup-haxe | |
| steps: | |
| - uses: actions/checkout@v4.1.7 | |
| - uses: krdlab/setup-haxe@master | |
| with: | |
| haxe-version: ${{ env.HAXE_VERSION }} | |
| - run: | | |
| haxelib setup C:/haxelib | |
| haxelib install hxcpp --quiet | |
| setup\windows.bat | |
| shell: cmd | |
| - run: echo "${{ github.run_id }}" > VERSION | |
| shell: bash | |
| - run: haxelib run lime build windows -32 --app-version="4.0.0-${{ github.run_id }}" $ARGS | |
| - uses: actions/upload-artifact@v4.3.4 | |
| with: | |
| name: windowsBuild32 | |
| path: export/release/windows/bin | |
| buildMac: | |
| name: Build on macOS (Universal) | |
| runs-on: macos-13 | |
| needs: setup-haxe | |
| steps: | |
| - uses: actions/checkout@v4.1.7 | |
| - uses: krdlab/setup-haxe@master | |
| with: | |
| haxe-version: ${{ env.HAXE_VERSION }} | |
| - run: | | |
| haxelib setup ~/haxelib | |
| haxelib install hxcpp --quiet | |
| haxelib install lime --quiet | |
| haxelib run lime rebuild lime mac -64 | |
| haxelib run lime rebuild lime mac -Dmac-catalyst -Dmac-arm64 | |
| chmod +x ./setup/unix.sh | |
| ./setup/unix.sh | |
| - run: echo "${{ github.run_id }}" > VERSION | |
| - run: haxelib run lime build mac --app-version="4.0.0-${{ github.run_id }}" $ARGS | |
| - uses: actions/upload-artifact@v4.3.4 | |
| with: | |
| name: macBuild | |
| path: export/release/macos/bin | |
| buildAndroid: | |
| name: Android | |
| runs-on: ubuntu-latest | |
| needs: setup-haxe | |
| if: false | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4.1.7 | |
| - name: Setup Java (JDK 17 for Android tools) | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Setup Haxe | |
| uses: krdlab/setup-haxe@master | |
| with: | |
| haxe-version: ${{ env.HAXE_VERSION }} | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Install Haxe Dependencies | |
| run: | | |
| haxelib setup ~/haxelib | |
| haxelib install hxcpp --quiet | |
| haxelib install lime --quiet | |
| haxelib install openfl --quiet | |
| chmod +x ./setup/unix.sh | |
| ./setup/unix.sh | |
| - name: Write Version File | |
| run: echo "${{ github.run_id }}" > VERSION | |
| - name: Build Android APK | |
| run: | | |
| lime setup android | |
| haxelib run lime build android --app-version="4.0.0-${{ github.run_id }}" $ARGS | |
| - name: Upload APK Artifact | |
| uses: actions/upload-artifact@v4.3.4 | |
| with: | |
| name: androidBuild | |
| path: export/release/android/bin | |
| buildiOS: | |
| name: Build iOS ( I hate this because it's a lot of trouble to set up ) | |
| runs-on: macos-13 | |
| needs: setup-haxe | |
| if: false | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4.1.7 | |
| - name: Setup Haxe | |
| uses: krdlab/setup-haxe@master | |
| with: | |
| haxe-version: ${{ env.HAXE_VERSION }} | |
| - name: Install Haxe Dependencies | |
| run: | | |
| haxelib setup ~/haxelib | |
| # Ensure core libs needed for iOS build are present | |
| haxelib install hxcpp --quiet # Often needed by Lime targets | |
| haxelib install lime --quiet | |
| haxelib install openfl --quiet | |
| # Run the project's specific dependency script | |
| chmod +x ./setup/unix.sh | |
| ./setup/unix.sh | |
| - name: Create Version Tag | |
| run: echo "${{ github.run_id }}" > VERSION | |
| - name: Build for iOS Simulator | |
| run: haxelib run lime build ios --app-version="4.0.0-${{ github.run_id }}" $ARGS | |
| - name: Upload Artifact | |
| uses: actions/upload-artifact@v4.3.4 | |
| with: | |
| name: iosSimulatorBuild | |
| path: export/release/ios/build/Release-iphonesimulator | |
| notifyDiscord: | |
| name: 📣 Notify Discord | |
| runs-on: ubuntu-latest | |
| if: always() | |
| needs: | |
| - buildLinux | |
| - buildWindows64 | |
| - buildWindows32 | |
| - buildMac | |
| - buildAndroid | |
| - buildiOS | |
| steps: | |
| - name: Send Notification | |
| env: | |
| DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_URL }} | |
| RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| COMMIT_URL: https://github.com/${{ github.repository }}/commit/${{ github.sha }} | |
| REPO_URL: https://github.com/${{ github.repository }} | |
| BRANCH: ${{ github.ref_name }} | |
| run: | | |
| check() { [[ "$1" == "success" ]] && echo "✅" || echo "❎"; } | |
| TITLE="✅ Build Successful" | |
| COLOR=65280 | |
| for status in "${{ needs.buildLinux.result }}" "${{ needs.buildWindows64.result }}" "${{ needs.buildWindows32.result }}" "${{ needs.buildMac.result }}" "${{ needs.buildAndroid.result }}" "${{ needs.buildiOS.result }}"; do | |
| [[ "$status" != "success" && "$status" != "skip" ]] && TITLE="❎ Build Failed" && COLOR=16711680 && break | |
| done | |
| curl -H "Content-Type: application/json" -X POST -d "{ | |
| \"username\": \"Github Action Report\", | |
| \"embeds\": [{ | |
| \"title\": \"$TITLE\", | |
| \"color\": $COLOR, | |
| \"fields\": [ | |
| { \"name\": \"Linux\", \"value\": \"$(check ${{ needs.buildLinux.result }})\", \"inline\": true }, | |
| { \"name\": \"Windows 64-bit\", \"value\": \"$(check ${{ needs.buildWindows64.result }})\", \"inline\": true }, | |
| { \"name\": \"Windows 32-bit\", \"value\": \"$(check ${{ needs.buildWindows32.result }})\", \"inline\": true }, | |
| { \"name\": \"macOS\", \"value\": \"$(check ${{ needs.buildMac.result }})\", \"inline\": true }, | |
| { \"name\": \"Android\", \"value\": \"$(check ${{ needs.buildAndroid.result }})\", \"inline\": true }, | |
| { \"name\": \"iOS\", \"value\": \"$(check ${{ needs.buildiOS.result }})\", \"inline\": true }, | |
| { \"name\": \"Workflow Run\", \"value\": \"[View Run]($RUN_URL)\" } | |
| ], | |
| \"footer\": { \"text\": \"GitHub Actions • ${{ github.repository }}\" }, | |
| \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\" | |
| }] | |
| }" $DISCORD_WEBHOOK |