Menerapkan dengan GitHub Actions
Otomatiskan langkah build, uji, dan penerapan SSH dalam alur kerja GitHub Actions.
Menerapkan dengan GitHub Actions adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Apa Itu GitHub Actions?
GitHub Actions adalah platform integrasi dan pengiriman berkelanjutan yang terintegrasi ke dalam GitHub. Alur kerja yang didefinisikan di .github/workflows/*.yml berjalan secara otomatis saat perubahan dikirim, permintaan pull dibuat, atau jadwal tertentu terpenuhi.
Struktur Alur Kerja Dasar
Alur kerja terdiri dari satu atau beberapa tugas, dan setiap tugas memiliki beberapa langkah.
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.3"
- name: Install dependencies
run: composer install --no-dev --optimize-autoloader
- name: Run tests
run: vendor/bin/phpunitLangkah Penerapan melalui SSH
Terapkan aplikasi ke server melalui SSH setelah pengujian berhasil.
- name: Deploy to server
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /srv/myapp
git pull origin main
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:cache
php artisan route:cache
sudo systemctl reload php8.3-fpmRahasia GitHub
Simpan nilai sensitif, seperti kunci SSH, token API, dan kata sandi basis data, sebagai rahasia repositori terenkripsi di Pengaturan → Rahasia dan Variabel.
Caching Dependensi
Simpan paket Composer dalam cache di antara beberapa proses untuk mempercepat alur kerja.
- name: Cache Composer packages
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}Menjalankan Pengujian
Sertakan wadah layanan MySQL atau PostgreSQL untuk pengujian integrasi.
services:
mysql:
image: mysql:8
env:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: secret
ports: [3306:3306]Variabel Lingkungan dalam Actions
Teruskan rahasia sebagai variabel lingkungan ke langkah-langkah alur kerja.
- name: Run tests
env:
DB_HOST: 127.0.0.1
DB_DATABASE: test
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: vendor/bin/phpunitGerbang Kualitas Kode
Blokir penerapan jika pemeriksaan kualitas kode gagal.
- name: PHPStan static analysis
run: vendor/bin/phpstan analyse src --level=6
- name: PHP_CodeSniffer
run: vendor/bin/phpcs src --standard=PSR12Pengujian Matriks
Lakukan pengujian secara bersamaan pada beberapa versi PHP.
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php: ["8.2", "8.3"]
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}Strategi Penerapan
Pendekatan umum: git pull langsung (sederhana), rsync (sinkronisasi berkas cepat), biru-hijau (tanpa waktu henti), dan Deployer PHP (tanpa waktu henti secara otomatis). Pilih berdasarkan toleransi terhadap waktu henti.
Ringkasan
Definisikan alur kerja di .github/workflows/*.yml. Jalankan pengujian pada setiap pengiriman perubahan dan lakukan penerapan saat cabang utama digabungkan. Cache dependensi, simpan rahasia di Rahasia GitHub, dan tambahkan gerbang kualitas sebelum penerapan.
Pemeriksaan Singkat
Di mana nilai sensitif seperti kunci SSH disimpan untuk GitHub Actions?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menerapkan dengan GitHub Actions” gratis?
Ya — teks lengkap “Menerapkan dengan GitHub Actions” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menerapkan dengan GitHub Actions”?
Otomatiskan langkah build, uji, dan penerapan SSH dalam alur kerja GitHub Actions. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Menerapkan dengan GitHub Actions” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Konfigurasi Nginx dan PHP-FPM
- Variabel Lingkungan dan File .env
- Menerapkan dengan GitHub Actions
- Membuat Aplikasi PHP dalam Docker