also looking at this
chore(deps): update dependency softprops/action-gh-release to v2.3.3
#159
1 file
+638
-860
Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.
| @@ -175,7 +175,18 @@ jobs: | ||
| 175 | 175 | |
| 176 | 176 | # Wait for dependencies to be fully installed |
| 177 | 177 | echo "⏳ Waiting for dependency installation to complete..." |
| 178 | sleep 5 | |
| 178 | sleep 10 | |
| 179 | ||
| 180 | # Debug: Check what was actually installed | |
| 181 | echo "🔍 Checking installed dependencies..." | |
| 182 | echo "📁 .local directory structure (first level):" | |
| 183 | find "$HOME/.local" -maxdepth 2 -type d | sort | head -20 | |
| 184 | ||
| 185 | echo "🔍 Looking for pkg-config specifically..." | |
| 186 | find "$HOME/.local" -name "*pkg*" -type f 2>/dev/null | head -10 || echo "No pkg-related files found" | |
| 187 | ||
| 188 | echo "🔍 Looking for freedesktop.org directory..." | |
| 189 | find "$HOME/.local" -path "*freedesktop*" -type d 2>/dev/null | head -5 || echo "No freedesktop.org directories found" | |
| 179 | 190 | |
| 180 | 191 | # Debug: Check if pkg-config is available |
| 181 | 192 | echo "🔍 Checking for pkg-config..." |
| @@ -246,6 +257,64 @@ jobs: | ||
| 246 | 257 | # Install additional dependencies needed for PHP extensions |
| 247 | 258 | echo "Windows build dependencies installed for PHP compilation" |
| 248 | 259 | |
| 260 | - name: Setup Launchpad Environment (macOS) | |
| 261 | if: matrix.platform == 'darwin' | |
| 262 | shell: bash | |
| 263 | run: | | |
| 264 | # Find and setup Launchpad environment variables | |
| 265 | echo "🔧 Setting up Launchpad environment for macOS build..." | |
| 266 | ||
| 267 | # Store original PATH to preserve system tools | |
| 268 | echo "ORIGINAL_PATH=$PATH" >> $GITHUB_ENV | |
| 269 | ||
| 270 | # Find all Launchpad binary directories that should be added to PATH | |
| 271 | LAUNCHPAD_PATHS="" | |
| 272 | ||
| 273 | # Find pkg-config binary - search broadly first | |
| 274 | echo "🔍 Searching for pkg-config binary..." | |
| 275 | PKG_CONFIG_BINARY=$(find "$HOME/.local" -name "pkg-config" -type f 2>/dev/null | head -1) | |
| 276 | if [ -n "$PKG_CONFIG_BINARY" ]; then | |
| 277 | PKG_CONFIG_DIR=$(dirname "$PKG_CONFIG_BINARY") | |
| 278 | echo "✅ Found pkg-config at: $PKG_CONFIG_DIR" | |
| 279 | LAUNCHPAD_PATHS="$PKG_CONFIG_DIR" | |
| 280 | else | |
| 281 | echo "❌ pkg-config binary not found in .local" | |
| 282 | echo "🔍 Checking if pkg-config exists in system PATH..." | |
| 283 | if command -v pkg-config >/dev/null 2>&1; then | |
| 284 | echo "✅ pkg-config found in system PATH: $(which pkg-config)" | |
| 285 | else | |
| 286 | echo "❌ pkg-config not found anywhere" | |
| 287 | fi | |
| 288 | fi | |
| 289 | ||
| 290 | # Find other essential Launchpad tools that might override system tools | |
| 291 | # We'll be more selective to avoid overriding system tools | |
| 292 | SED_BINARY=$(find "$HOME/.local" -path "*/gnu.org/sed/*/bin/sed" -type f 2>/dev/null | head -1) | |
| 293 | if [ -n "$SED_BINARY" ]; then | |
| 294 | SED_DIR=$(dirname "$SED_BINARY") | |
| 295 | echo "✅ Found sed at: $SED_DIR" | |
| 296 | # Only add sed if we have other tools too, to avoid conflicts | |
| 297 | if [ -n "$LAUNCHPAD_PATHS" ]; then | |
| 298 | LAUNCHPAD_PATHS="$LAUNCHPAD_PATHS:$SED_DIR" | |
| 299 | fi | |
| 300 | fi | |
| 301 | ||
| 302 | # Set the combined Launchpad paths (these will be prepended to PATH later) | |
| 303 | if [ -n "$LAUNCHPAD_PATHS" ]; then | |
| 304 | echo "LAUNCHPAD_BINARY_PATHS=$LAUNCHPAD_PATHS" >> $GITHUB_ENV | |
| 305 | echo "✅ Launchpad binary paths: $LAUNCHPAD_PATHS" | |
| 306 | else | |
| 307 | echo "LAUNCHPAD_BINARY_PATHS=" >> $GITHUB_ENV | |
| 308 | echo "❌ No Launchpad binary paths found - PATH will not be modified" | |
| 309 | fi | |
| 310 | ||
| 311 | # Setup comprehensive PKG_CONFIG_PATH | |
| 312 | PKG_PATHS=$(find "$HOME/.local" -name "pkgconfig" -type d 2>/dev/null | tr '\n' ':') | |
| 313 | if [ -n "$PKG_PATHS" ]; then | |
| 314 | echo "LAUNCHPAD_PKG_CONFIG_PATH=$PKG_PATHS" >> $GITHUB_ENV | |
| 315 | echo "✅ PKG_CONFIG_PATH setup with $(echo "$PKG_PATHS" | tr ':' '\n' | wc -l) directories" | |
| 316 | fi | |
| 317 | ||
| 249 | 318 | - name: Build PHP |
| 250 | 319 | shell: bash |
| 251 | 320 | env: |
| @@ -255,53 +324,44 @@ jobs: | ||
| 255 | 324 | TARGET_ARCH: ${{ matrix.arch }} |
| 256 | 325 | BUILD_DIR: ${{ github.workspace }}/build |
| 257 | 326 | OUTPUT_DIR: ${{ github.workspace }}/binaries |
| 327 | # Environment for all platforms - will handle PATH logic in shell script | |
| 328 | PKG_CONFIG_PATH: ${{ matrix.platform == 'darwin' && env.LAUNCHPAD_PKG_CONFIG_PATH || env.PKG_CONFIG_PATH }} | |
| 258 | 329 | run: | |
| 259 | # Source Launchpad environment if available (macOS only) | |
| 330 | # Setup PATH for macOS with Launchpad tools | |
| 260 | 331 | if [ "$" = "darwin" ]; then |
| 261 | # Find and source the best available Launchpad environment | |
| 262 | if [ -f "$HOME/.local/build-env.sh" ]; then | |
| 263 | echo "🔧 Sourcing Launchpad build environment for macOS build..." | |
| 264 | source "$HOME/.local/build-env.sh" | |
| 265 | echo "✅ Environment sourced from build-env.sh" | |
| 266 | elif [ -f "$HOME/.local/share/launchpad/global/build-env.sh" ]; then | |
| 267 | echo "🔧 Sourcing global Launchpad environment for macOS build..." | |
| 268 | source "$HOME/.local/share/launchpad/global/build-env.sh" | |
| 269 | echo "✅ Environment sourced from global build-env.sh" | |
| 270 | else | |
| 271 | echo "⚠️ No Launchpad environment file found" | |
| 272 | fi | |
| 332 | echo "🔧 Setting up macOS environment..." | |
| 273 | 333 | |
| 274 | # Always ensure pkg-config is available - find it dynamically | |
| 275 | echo "🔍 Finding and adding pkg-config to PATH..." | |
| 276 | PKG_CONFIG_PATH_FOUND=$(find "$HOME/.local" -name "pkg-config" -type f 2>/dev/null | head -1) | |
| 277 | if [ -n "$PKG_CONFIG_PATH_FOUND" ]; then | |
| 278 | PKG_CONFIG_DIR=$(dirname "$PKG_CONFIG_PATH_FOUND") | |
| 279 | export PATH="$PKG_CONFIG_DIR:$PATH" | |
| 280 | echo "✅ Added pkg-config to PATH from: $PKG_CONFIG_DIR" | |
| 281 | fi | |
| 334 | # Preserve original PATH | |
| 335 | ORIGINAL_PATH="$PATH" | |
| 336 | echo "✅ Original PATH: ${ORIGINAL_PATH:0:100}..." | |
| 282 | 337 | |
| 283 | # Also ensure sed is available | |
| 284 | SED_PATH_FOUND=$(find "$HOME/.local" -path "*/gnu.org/sed/*/bin/sed" -type f 2>/dev/null | head -1) | |
| 285 | if [ -n "$SED_PATH_FOUND" ]; then | |
| 286 | SED_DIR=$(dirname "$SED_PATH_FOUND") | |
| 287 | export PATH="$SED_DIR:$PATH" | |
| 288 | echo "✅ Added sed to PATH from: $SED_DIR" | |
| 338 | # Add Launchpad binary paths to PATH if they exist | |
| 339 | if [ -n "${LAUNCHPAD_BINARY_PATHS:-}" ] && [ "${LAUNCHPAD_BINARY_PATHS}" != "NOT SET" ]; then | |
| 340 | export PATH="$LAUNCHPAD_BINARY_PATHS:$ORIGINAL_PATH" | |
| 341 | echo "✅ Updated PATH with Launchpad binaries: ${LAUNCHPAD_BINARY_PATHS}" | |
| 342 | else | |
| 343 | echo "❌ No Launchpad binary paths found - using original PATH" | |
| 289 | 344 | fi |
| 290 | 345 | |
| 291 | echo "✅ Current PATH includes freedesktop.org: $(echo $PATH | grep -o freedesktop.org || echo 'NO')" | |
| 346 | echo "✅ Final PATH: ${PATH:0:100}..." | |
| 292 | 347 | echo "✅ PKG_CONFIG_PATH: ${PKG_CONFIG_PATH:-'NOT SET'}" |
| 293 | 348 | |
| 294 | # Verify pkg-config is accessible and set up PKG_CONFIG_PATH | |
| 349 | # Verify essential system tools are available | |
| 350 | echo "🔧 Checking essential system tools..." | |
| 351 | for tool in curl tar gzip grep tr find wc head; do | |
| 352 | if command -v $tool >/dev/null 2>&1; then | |
| 353 | echo "✅ $tool: $(which $tool)" | |
| 354 | else | |
| 355 | echo "❌ $tool: NOT FOUND" | |
| 356 | fi | |
| 357 | done | |
| 358 | ||
| 359 | # Verify pkg-config is accessible | |
| 360 | echo "🔧 Checking pkg-config..." | |
| 295 | 361 | if command -v pkg-config >/dev/null 2>&1; then |
| 296 | 362 | echo "✅ pkg-config is accessible: $(which pkg-config)" |
| 297 | 363 | echo "✅ pkg-config version: $(pkg-config --version)" |
| 298 | 364 | |
| 299 | # Ensure PKG_CONFIG_PATH includes all Launchpad library paths | |
| 300 | echo "🔧 Setting up comprehensive PKG_CONFIG_PATH..." | |
| 301 | PKG_PATHS=$(find "$HOME/.local" -name "pkgconfig" -type d 2>/dev/null | tr '\n' ':') | |
| 302 | export PKG_CONFIG_PATH="$PKG_PATHS:${PKG_CONFIG_PATH:-}" | |
| 303 | echo "✅ PKG_CONFIG_PATH set to: $PKG_CONFIG_PATH" | |
| 304 | ||
| 305 | 365 | # Test libxml-2.0 specifically |
| 306 | 366 | if pkg-config --exists libxml-2.0; then |
| 307 | 367 | echo "✅ libxml-2.0 package found via pkg-config" |
| @@ -311,13 +371,13 @@ jobs: | ||
| 311 | 371 | echo "🔍 Available packages: $(pkg-config --list-all | head -10)" |
| 312 | 372 | fi |
| 313 | 373 | else |
| 314 | echo "❌ pkg-config still not accessible" | |
| 315 | echo "🔍 All pkg-config instances:" | |
| 316 | find "$HOME/.local" -name "pkg-config" -type f 2>/dev/null | |
| 374 | echo "❌ pkg-config not accessible" | |
| 375 | echo "🔍 Searching for pkg-config in .local..." | |
| 376 | find "$HOME/.local" -name "pkg-config" -type f 2>/dev/null | head -3 || echo "No pkg-config binaries found" | |
| 317 | 377 | fi |
| 318 | 378 | fi |
| 319 | 379 | |
| 320 | # Run the build script with enhanced environment | |
| 380 | # Run the build script with properly configured environment | |
| 321 | 381 | bun run scripts/build-php.ts |
| 322 | 382 | |
| 323 | 383 | - name: Create tarball (Unix) |