0Pricing
PHP Academy · Pelajaran

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/phpunit

Langkah 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-fpm

Rahasia 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/phpunit

Gerbang 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=PSR12

Pengujian 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

  1. Konfigurasi Nginx dan PHP-FPM
  2. Variabel Lingkungan dan File .env
  3. Menerapkan dengan GitHub Actions
  4. Membuat Aplikasi PHP dalam Docker
← Kembali ke PHP Academy