Skip to content

Commit

Permalink
Update NG Binaries to new action
Browse files Browse the repository at this point in the history
  • Loading branch information
dries-c committed Jan 30, 2025
1 parent eb919ee commit 2973862
Show file tree
Hide file tree
Showing 5 changed files with 616 additions and 97 deletions.
91 changes: 2 additions & 89 deletions .github/workflows/main-pm-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,94 +20,7 @@ on:
required: true
type: boolean

env:
MUSL_CROSS_MAKE_VERSION: 7b9487e56efc83c419a397af7df7f119001dc51c

jobs:
android:
name: Android arm64
runs-on: ubuntu-20.04

steps:
- uses: actions/checkout@v4

- name: Install tools and dependencies
run: |
sudo apt-get update
sudo apt-get install make autoconf automake libtool libtool-bin m4 wget libc-bin gzip bzip2 bison g++ git re2c
- name: Prepare compile.sh download cache
id: download-cache
uses: actions/cache@v4
with:
path: ./download_cache
key: compile-sh-cache-ssl-https-${{ hashFiles('./compile.sh') }}
restore-keys: compile-sh-cache-ssl-https-

- name: Fetch compiler cache
id: compiler-cache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/compiler
key: musl-cross-make-${{ env.MUSL_CROSS_MAKE_VERSION }}
restore-keys: musl-cross-make-

- name: Checkout musl-cross-make
if: steps.compiler-cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: pmmp/musl-cross-make
path: musl-cross-make
ref: ${{ env.MUSL_CROSS_MAKE_VERSION }}

- name: Build compiler
if: steps.compiler-cache.outputs.cache-hit != 'true'
working-directory: musl-cross-make
run: |
echo "TARGET = aarch64-linux-musl" > config.mak
make -j$(nproc)
make install
mv ./output "${{ github.workspace }}/compiler"
- name: Compile PHP
run: |
export PATH="${{ github.workspace }}/compiler/bin:$PATH"
# Used "set -ex" instead of hashbang since script isn't executed with hashbang
set -ex
trap "exit 1" ERR
./compile.sh -t android-aarch64 -x -j 4 -g -P ${{ inputs.pm-version-major }} -c ./download_cache -D -z ${{ inputs.php-version-base }}
- name: Create tarball
run: |
tar -czf ./PHP-${{ inputs.php-version-base }}-Android-arm64-PM${{ inputs.pm-version-major }}.tar.gz bin
tar -czf ./Z-PHP-${{ inputs.php-version-base }}-Android-arm64-PM${{ inputs.pm-version-major }}-debugging-symbols.tar.gz bin-debug
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: PHP-${{ inputs.php-version-base }}-Android-PM${{ inputs.pm-version-major }}
path: |
./*PHP-${{ inputs.php-version-base }}-Android-arm64-PM${{ inputs.pm-version-major }}*.tar.gz
install.log
compile.sh
if-no-files-found: error

- name: Prepare workspace for upload
if: failure()
run: tar -czf workspace.tar.gz install_data

- name: Upload workspace
uses: actions/upload-artifact@v4
if: failure()
with:
name: PHP-${{ inputs.php-version-base }}-Android-workspace-PM${{ inputs.pm-version-major }}
path: |
workspace.tar.gz
if-no-files-found: error

linux:
name: Linux
runs-on: ubuntu-20.04
Expand All @@ -133,7 +46,7 @@ jobs:
# Used "set -ex" instead of hashbang since script isn't executed with hashbang
set -ex
trap "exit 1" ERR
./compile.sh -t linux64 -j 4 -g -P ${{ inputs.pm-version-major }} -c ./download_cache -D -z ${{ inputs.php-version-base }}
./compile.sh -t linux64 -j 4 -g -F -P ${{ inputs.pm-version-major }} -c ./download_cache -D -z ${{ inputs.php-version-base }}
- name: Create tarball
run: |
Expand Down Expand Up @@ -273,7 +186,7 @@ jobs:

publish:
name: Publish binaries
needs: [linux, macos, windows, android]
needs: [linux, macos, windows]
runs-on: ubuntu-20.04
if: ${{ github.ref_name == 'stable' && github.ref_type == 'branch' && !contains(github.event.head_commit.message, '[no release]') }}
concurrency: release-${{ inputs.php-version-base }}-pm${{ inputs.pm-version-major }}
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@ jobs:
strategy:
matrix:
include:
- pm-version-major: 5
php-version-base: "8.2"
special-release: default-latest #default = best for PM5, latest = display as latest on GitHub
- pm-version-major: 5
php-version-base: "8.3"
special-release: default-latest #default = best for PM5, latest = display as latest on GitHub

uses: ./.github/workflows/main-pm-matrix.yml
with:
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Bash script used to compile PHP on MacOS and Linux platforms. Make sure you have
| -d | Compiles with debugging symbols and disables optimizations (slow, but useful for debugging segfaults) |
| -D | Compiles with separated debugging symbols, but leaves optimizations enabled (used for distributed binaries) |
| -g | Will compile GD2 |
| -F | Will compile FFI |
| -j | Set make threads to # |
| -l | Uses the folder specified for caching compilation artifacts (useful for rapid rebuild and testing) |
| -n | Don't remove sources after completing compilation |
Expand Down
Loading

0 comments on commit 2973862

Please sign in to comment.