PHP Academy · Pelajaran

Melaksanakan dengan GitHub Actions

Automatikkan langkah binaan, ujian dan pelaksanaan SSH dalam aliran kerja GitHub Actions.

Pelajaran 3 daripada 412 langkah

Melaksanakan dengan GitHub Actions ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah GitHub Actions?

GitHub Actions ialah platform CI/CD terbina dalam GitHub. Aliran kerja yang ditakrifkan dalam .github/workflows/*.yml berjalan secara automatik apabila berlaku peristiwa penghantaran, permintaan gabungan atau jadual.

Struktur Asas Aliran Kerja

Aliran kerja terdiri daripada satu atau lebih tugas, dan setiap tugas mempunyai 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

Laksanakan penerapan ke pelayan melalui SSH selepas semua ujian lulus.

      - 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

Rahsia GitHub

Simpan nilai sensitif (kunci SSH, token API, kata laluan pangkalan data) sebagai rahsia repositori yang disulitkan dalam Tetapan → Rahsia dan Pemboleh Ubah.

Menyimpan Kebergantungan dalam Cache

Simpan pakej Composer dalam cache antara pelaksanaan untuk mempercepatkan aliran kerja.

      - name: Cache Composer packages
        uses: actions/cache@v4
        with:
          path: vendor
          key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}

Menjalankan Ujian

Sertakan bekas perkhidmatan MySQL atau PostgreSQL untuk ujian integrasi.

services:
  mysql:
    image: mysql:8
    env:
      MYSQL_DATABASE: test
      MYSQL_ROOT_PASSWORD: secret
    ports: [3306:3306]

Pemboleh Ubah Persekitaran dalam Actions

Hantar rahsia sebagai pemboleh ubah persekitaran kepada langkah aliran kerja.

      - name: Run tests
        env:
          DB_HOST: 127.0.0.1
          DB_DATABASE: test
          DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
        run: vendor/bin/phpunit

Syarat Kualiti Kod

Sekat penerapan jika pemeriksaan kualiti kod 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

Uji dengan beberapa versi PHP secara serentak.

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 biasa: git pull secara langsung (mudah), rsync (penyegerakan fail pantas), biru-hijau (masa henti sifar), Deployer PHP (masa henti sifar secara automatik). Pilih berdasarkan toleransi masa henti.

Ringkasan

Takrifkan aliran kerja dalam .github/workflows/*.yml. Jalankan ujian pada setiap penghantaran dan lakukan penerapan apabila gabungan ke cawangan utama berlaku. Simpan kebergantungan dalam cache, simpan rahsia dalam GitHub Secrets dan tambahkan syarat kualiti sebelum penerapan.

Semakan Ringkas

Di manakah nilai sensitif seperti kunci SSH disimpan untuk GitHub Actions?

Percuma untuk bermula

Pelajari PHP dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
49
Pelajaran
195

Soalan Lazim

Adakah pelajaran “Melaksanakan dengan GitHub Actions” percuma?

Ya — teks penuh “Melaksanakan dengan GitHub Actions” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Melaksanakan dengan GitHub Actions”?

Automatikkan langkah binaan, ujian dan pelaksanaan SSH dalam aliran kerja GitHub Actions. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Melaksanakan dengan GitHub Actions” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Konfigurasi Nginx dan PHP-FPM
  2. Pemboleh Ubah Persekitaran dan Fail .env
  3. Melaksanakan dengan GitHub Actions
  4. Mendockerkan Aplikasi PHP
← Kembali ke PHP Academy