2828
2929 env :
3030 HAGICODE_VERSION : ${{ github.event.inputs.version || 'latest' }}
31+ HAGICODE_DIR : ${{ runner.temp }}/hagicode-mac-arm64
3132
3233 steps :
3334 - name : Checkout repository
@@ -39,76 +40,103 @@ jobs:
3940 echo "OS: $(uname -s)"
4041 echo "Architecture: $(uname -m)"
4142 echo "macOS Version: $(sw_vers -productVersion)"
42- echo "Working Directory: $(pwd)"
4343
4444 - name : Install .NET 10 Runtime
4545 run : |
4646 echo "=== Installing .NET 10 SDK ==="
47- curl -sSL https://dotnet /v1/dotnet-install.sh | bash -s -- --channel 10.0
47+ curl -sSL https://dot.net /v1/dotnet-install.sh | bash -s -- --channel 10.0
4848 export DOTNET_ROOT="$HOME/.dotnet"
4949 export PATH="$DOTNET_ROOT:$PATH"
5050 echo "DOTNET_ROOT=$DOTNET_ROOT" >> $GITHUB_ENV
5151 echo "$DOTNET_ROOT" >> $GITHUB_PATH
5252 dotnet --info
53- echo "=== .NET Installation Complete ==="
5453
5554 - name : Run download and launch script
5655 id : launch
5756 env :
5857 HAGICODE_DIR : ${{ runner.temp }}/hagicode-mac-arm64
59- timeout-minutes : 10
60- continue-on-error : true
6158 run : |
62- echo "=== Running Download and Launch Script ==="
63- echo "Version: $HAGICODE_VERSION"
64- echo "Directory: $HAGICODE_DIR"
65- export HAGICODE_VERSION="$HAGICODE_VERSION"
66- export HAGICODE_DIR="$HAGICODE_DIR"
67- export DOTNET_ROOT="$DOTNET_ROOT"
68- bash scripts/download-launch-mac-arm64.sh || exit_code=$?
69- if [ -n "$exit_code" ] && [ "$exit_code" -ne 0 ]; then
70- echo "Script exited with code: $exit_code"
71- exit $exit_code
59+ # Download and extract release
60+ echo "=== Downloading and Extracting Release ==="
61+ bash scripts/download-launch-mac-arm64.sh
62+
63+ # Verify extraction
64+ if [ ! -f "$HAGICODE_DIR/start.sh" ]; then
65+ echo "ERROR: start.sh not found"
66+ exit 1
7267 fi
73- echo "Application started successfully!"
74- sleep 3
7568
76- - name : Capture application logs on failure
77- if : ${{ failure() && steps.launch.outcome == 'failure' }}
69+ - name : Start application in background
70+ env :
71+ HAGICODE_DIR : ${{ runner.temp }}/hagicode-mac-arm64
7872 run : |
79- HAGICODE_DIR="${{ runner.temp }}/hagicode-mac-arm64"
80- echo "=== Application Launch Failed ==="
81- ls -la "$HAGICODE_DIR" || echo "Directory not found"
82- find "$HAGICODE_DIR" -name "*.log" -type f -exec echo "--- {} ---" \; -exec cat {} \; 2>/dev/null || echo "No log files found"
83- find "$HAGICODE_DIR" -maxdepth 2 -type f | head -20 || echo "No files found"
73+ echo "=== Starting Application in Background ==="
74+ cd "$HAGICODE_DIR"
75+
76+ # Start application in background, redirecting output to logs
77+ nohup bash start.sh > app.log 2>&1 &
78+ APP_PID=$!
79+
80+ echo "Application PID: $APP_PID"
81+ echo "Waiting for startup..."
82+ sleep 5
83+
84+ # Check if process is still running
85+ if kill -0 $APP_PID 2>/dev/null; then
86+ echo "Application is running (PID: $APP_PID)"
87+ echo "$APP_PID" > app.pid
88+ else
89+ echo "ERROR: Application failed to start"
90+ cat app.log
91+ exit 1
92+ fi
8493
85- - name : Verify platform
94+ - name : Monitor application
95+ env :
96+ HAGICODE_DIR : ${{ runner.temp }}/hagicode-mac-arm64
8697 run : |
87- echo "=== Platform Verification ==="
88- arch
89- sw_vers
98+ echo "=== Monitoring Application ==="
99+ cd "$HAGICODE_DIR"
100+
101+ # Wait and check logs
102+ for i in {1..5}; do
103+ sleep 2
104+ if [ -f app.log ]; then
105+ echo "Log check $i:"
106+ tail -3 app.log || true
107+ fi
108+ done
109+
110+ # Final status check
111+ if [ -f app.pid ]; then
112+ PID=$(cat app.pid)
113+ if kill -0 $PID 2>/dev/null; then
114+ echo "SUCCESS: Application is still running"
115+ tail -20 app.log || true
116+ else
117+ echo "WARNING: Application stopped during monitoring"
118+ tail -50 app.log || true
119+ fi
120+ else
121+ echo "ERROR: No PID file found"
122+ exit 1
123+ fi
90124
91125 - name : Upload diagnostic artifacts
92126 if : ${{ always() }}
93127 uses : actions/upload-artifact@v4
94128 with :
95129 name : mac-arm64-logs-${{ github.run_id }}
96- path : ${{ runner.temp }}/hagicode-mac-arm64/
130+ path : |
131+ ${{ runner.temp }}/hagicode-mac-arm64/
97132 retention-days : 7
98133
99134 - name : Summary
100135 if : ${{ always() }}
101136 run : |
102137 echo "### macOS ARM64 Verification Summary" >> $GITHUB_STEP_SUMMARY
103138 echo "" >> $GITHUB_STEP_SUMMARY
104- echo "**Result :** ${{ steps.launch.outcome }} " >> $GITHUB_STEP_SUMMARY
139+ echo "**Platform :** macos-14 (ARM64) " >> $GITHUB_STEP_SUMMARY
105140 echo "**Version Tested:** $HAGICODE_VERSION" >> $GITHUB_STEP_SUMMARY
106- echo "**Runner:** macos-14 (ARM64)" >> $GITHUB_STEP_SUMMARY
107141 echo "" >> $GITHUB_STEP_SUMMARY
108- echo "See artifacts for detailed logs." >> $GITHUB_STEP_SUMMARY
109-
110- - name : Report failure
111- if : ${{ failure() && steps.launch.outcome == 'failure' }}
112- run : |
113- echo "::error::macOS ARM64 verification failed. Check logs for details."
114- exit 1
142+ cat ${{ runner.temp }}/hagicode-mac-arm64/app.log >> $GITHUB_STEP_SUMMARY || echo "No application logs available" >> $GITHUB_STEP_SUMMARY
0 commit comments