1- name : Build gRPC PHP (PECL Multi-Arch)
1+ name : Build gRPC PHP (Ubuntu 22.04 Multi-Arch)
22
3- # Mengizinkan eksekusi manual
3+ # Pemicu manual agar Anda bisa memasukkan versi saat menjalankan workflow
44on :
55 workflow_dispatch :
66 inputs :
1515
1616jobs :
1717 build-pecl :
18+ name : Build on ${{ matrix.arch }}
1819 strategy :
19- # Matrix akan menjalankan job ini berulang kali sesuai daftar di bawah
20+ # Matrix untuk menjalankan dua server berbeda secara bersamaan
2021 matrix :
2122 include :
22- # 1. Target untuk PC Lokal Anda (Intel/AMD64)
2323 - os : ubuntu-22.04
2424 arch : amd64
25- # 2. Target untuk Server VPS Anda (Native ARM64)
2625 - os : ubuntu-22.04-arm
2726 arch : arm64
2827
29- # Server yang digunakan akan menyesuaikan dengan matrix di atas
28+ # GitHub akan memilih OS runner berdasarkan matrix di atas
3029 runs-on : ${{ matrix.os }}
3130
3231 steps :
33- - name : 1. Install Dependensi Sistem
32+ - name : 1. Update Sistem & Install Dependensi Dasar
3433 run : |
3534 sudo apt-get update
3635 sudo apt-get install -y software-properties-common curl build-essential zlib1g-dev
3736
38- - name : 2. Setup PPA Ondřej & Install PHP + PEAR (PECL)
37+ - name : 2. Tambahkan PPA Ondřej & Install PHP + PEAR
3938 run : |
4039 sudo add-apt-repository -y ppa:ondrej/php
4140 sudo apt-get update
4241 sudo apt-get install -y php${{ github.event.inputs.php_version }}-dev php${{ github.event.inputs.php_version }}-cli php-pear
4342
44- - name : 3. Install gRPC via PECL
43+ - name : 3. Compile gRPC via PECL
4544 run : |
4645 sudo pecl install grpc-${{ github.event.inputs.grpc_version }}
4746
4847 - name : 4. Ambil File grpc.so
4948 run : |
5049 EXT_DIR=$(php-config --extension-dir)
51- echo "File grpc.so berhasil dibuat di: $EXT_DIR"
50+ echo "File grpc.so berhasil dibuat di direktori: $EXT_DIR"
51+ # Salin file ke root workspace agar mudah diupload
5252 cp $EXT_DIR/grpc.so ./grpc.so
5353
54- - name : 5. Upload grpc.so sebagai Artifact
54+ - name : 5. Upload File grpc.so sebagai Artifact
5555 uses : actions/upload-artifact@v4
5656 with :
57- # Nama file zip akan otomatis dibedakan (amd64 vs arm64) agar tidak tertimpa
58- name : grpc-${{ matrix.arch }}-php${{ github.event.inputs.php_version }}-v${{ github.event.inputs.grpc_version }}
57+ # Nama file . zip akan dibedakan secara otomatis berdasarkan arsitektur
58+ name : grpc-${{ matrix.arch }}-ubuntu22.04- php${{ github.event.inputs.php_version }}-v${{ github.event.inputs.grpc_version }}
5959 path : ./grpc.so
0 commit comments