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

test

test #66

Workflow file for this run

name: Build and Notify
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
inputs:
confirm:
description: "Confirm to proceed with the build?"
required: true
type: boolean
Mobile:
description: "Include Android and iOS builds?"
required: true
type: boolean
env:
ARGS: "-D officialBuild -D NotDeveloper"
HAXE_VERSION: 4.3.6
jobs:
confirm:
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.confirm == 'true' }}
name: Confirm Build
runs-on: ubuntu-latest
steps:
- name: Confirm Build
run: echo "Build confirmed. Proceeding with the build."
setup-haxe:
name: Setup and Cache Haxe Dependencies
runs-on: ubuntu-latest
needs: confirm
steps:
- uses: actions/cache@v4
with:
path: |
~/.haxelib
~/.lime
key: ${{ runner.os }}-haxe-${{ hashFiles('Project.xml', '**/*.hxml', '**/haxelib.json') }}
restore-keys: |
${{ runner.os }}-haxe-
buildLinux:
name: Build on Linux
runs-on: ubuntu-latest
needs: setup-haxe
steps:
- uses: actions/checkout@v4.1.7
- uses: krdlab/setup-haxe@master
with:
haxe-version: ${{ env.HAXE_VERSION }}
- run: |
sudo apt-get update
sudo apt-get install -y libvlc-dev libvlccore-dev
haxelib setup ~/haxelib
haxelib list | grep -q hxcpp || haxelib install hxcpp --quiet
chmod +x ./setup/unix.sh
./setup/unix.sh
- run: echo "${{ github.run_id }}" > VERSION
- run: haxelib run lime build Project.xml linux --app-version="4.0.0-${{ github.run_id }}" $ARGS
- uses: actions/upload-artifact@v4
with:
name: Linux Build
path: export/release/linux/bin
if-no-files-found: warn
compression-level: 9
buildWindows:
name: Build on Windows
runs-on: windows-latest
needs: setup-haxe
continue-on-error: true
strategy:
matrix:
arch: [64, 32]
steps:
- uses: actions/checkout@v4.1.7
- uses: krdlab/setup-haxe@master
with:
haxe-version: ${{ env.HAXE_VERSION }}
- run: |
haxelib setup C:/haxelib
haxelib list | findstr hxcpp || haxelib install hxcpp --quiet
setup\windows.bat
shell: cmd
- run: echo "${{ github.run_id }}" > VERSION
shell: bash
- run: |
haxelib run lime build windows ${{ matrix.arch == 32 && '-32 -D 32bits' || '' }} --app-version="4.0.0-${{ github.run_id }}" $ARGS
- uses: actions/upload-artifact@v4
with:
name: Windows Build (x${{ matrix.arch }})
path: export/${{ matrix.arch == 64 && 'release' || '32bit' }}/windows/bin
if-no-files-found: warn
compression-level: 9
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 list | grep -q hxcpp || haxelib install hxcpp --quiet
haxelib list | grep -q lime || 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
with:
name: macOS Build
path: export/release/macos/bin
if-no-files-found: warn
compression-level: 9
Mobile:
name: Mobile
runs-on: ubuntu-latest
needs: setup-haxe
if: ${{ github.event.inputs.Mobile == 'true' }}
steps:
- name: Include Mobile Builds
run: echo "Mobile builds are included."
buildAndroid:
name: Build Android
runs-on: ubuntu-latest
needs: Mobile
if: ${{ github.event.inputs.Mobile == 'true' }}
steps:
- uses: actions/checkout@v4.1.7
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: krdlab/setup-haxe@master
with:
haxe-version: ${{ env.HAXE_VERSION }}
- uses: android-actions/setup-android@v3
- uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: ${{ runner.os }}-gradle-
- run: |
haxelib setup ~/haxelib
haxelib list | grep -q hxcpp || haxelib install hxcpp --quiet
haxelib list | grep -q lime || haxelib install lime --quiet
haxelib list | grep -q openfl || haxelib install openfl --quiet
chmod +x ./setup/unix.sh
./setup/unix.sh
- run: echo "${{ github.run_id }}" > VERSION
- run: |
lime setup android
haxelib run lime build android --app-version="4.0.0-${{ github.run_id }}" $ARGS
- uses: actions/upload-artifact@v4
with:
name: Android Build
path: export/release/android/bin
if-no-files-found: warn
compression-level: 9
buildiOS:
name: Build iOS
runs-on: macos-13
needs: Mobile
if: ${{ github.event.inputs.Mobile == 'true' }}
steps:
- uses: actions/checkout@v4.1.7
- uses: krdlab/setup-haxe@master
with:
haxe-version: ${{ env.HAXE_VERSION }}
- run: |
haxelib setup ~/haxelib
haxelib list | grep -q hxcpp || haxelib install hxcpp --quiet
haxelib list | grep -q lime || haxelib install lime --quiet
haxelib list | grep -q openfl || haxelib install openfl --quiet
chmod +x ./setup/unix.sh
./setup/unix.sh
- run: echo "${{ github.run_id }}" > VERSION
- run: haxelib run lime build ios --app-version="4.0.0-${{ github.run_id }}" $ARGS
- uses: actions/upload-artifact@v4
with:
name: iOS Build
path: export/release/ios/bin/
if-no-files-found: warn
compression-level: 9
notifyDiscord:
name: πŸ“£ Notify Discord
runs-on: ubuntu-latest
if: always()
needs:
- buildLinux
- buildWindows
- buildMac
- buildAndroid
- buildiOS
steps:
- name: Send Discord 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 }}
BRANCH: ${{ github.ref_name }}
COMMIT_MESSAGE: >-
${{ github.event.head_commit.message || github.event.pull_request.title || 'Manual Trigger' }}
run: |
check() {
case "$1" in
success) echo "βœ… Success";;
skipped) echo "βšͺ Skipped";;
*) echo "❌ Failed";;
esac
}
STATUS_LINUX=$(check "${{ needs.buildLinux.result }}")
STATUS_WIN=$(check "${{ needs.buildWindows.result }}")
STATUS_MAC=$(check "${{ needs.buildMac.result }}")
STATUS_ANDROID=$(check "${{ needs.buildAndroid.result }}")
STATUS_IOS=$(check "${{ needs.buildiOS.result }}")
TITLE="βœ… All Builds Succeeded"
COLOR=65280
for status in "$STATUS_LINUX" "$STATUS_WIN" "$STATUS_MAC" "$STATUS_ANDROID" "$STATUS_IOS"; do
if [[ "$status" == "❌ Failed" ]]; then
TITLE="❌ Build Failure Detected"
COLOR=16711680
break
fi
done
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"
curl -H "Content-Type: application/json" -X POST -d "{
\"username\": \"πŸš€ Haxe Build Bot\",
\"embeds\": [{
\"title\": \"$TITLE\",
\"description\": \"$CONTENT\",
\"color\": $COLOR,
\"fields\": [
{ \"name\": \"πŸ“ Commit Message\", \"value\": \"${COMMIT_MESSAGE}\" },
{ \"name\": \"πŸ“¦ Branch\", \"value\": \"$BRANCH\", \"inline\": true },
{ \"name\": \"πŸ”– Commit\", \"value\": \"[View Commit]($COMMIT_URL)\", \"inline\": true },
{ \"name\": \"πŸ”— Workflow Run\", \"value\": \"[Click Here]($RUN_URL)\" }
],
\"footer\": { \"text\": \"Haxe CI β€’ ${{ github.repository }}\" },
\"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"
}]
}" "$DISCORD_WEBHOOK"