0Pricing
PHP Academy · บทเรียน

การนำไปใช้งานด้วย GitHub Actions

ทำขั้นตอนการสร้าง การทดสอบ และการนำไปใช้งานผ่าน SSH ในเวิร์กโฟลว์ GitHub Actions ให้เป็นอัตโนมัติ

การนำไปใช้งานด้วย GitHub Actions เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

GitHub Actions คืออะไร

GitHub Actions เป็นแพลตฟอร์ม CI/CD ที่มีอยู่ใน GitHub เวิร์กโฟลว์ที่กำหนดไว้ใน .github/workflows/*.yml จะทำงานโดยอัตโนมัติเมื่อเกิดเหตุการณ์ส่งโค้ด การสร้างคำขอรวมโค้ด หรือเหตุการณ์ตามกำหนดเวลา

โครงสร้างเวิร์กโฟลว์พื้นฐาน

เวิร์กโฟลว์ประกอบด้วยงานอย่างน้อยหนึ่งงาน และแต่ละงานมีขั้นตอนต่าง ๆ

# .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

ขั้นตอนการนำระบบไปใช้งานผ่าน SSH

นำระบบไปใช้งานบนเซิร์ฟเวอร์ผ่าน SSH หลังจากการทดสอบผ่าน

      - 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

ข้อมูลลับของ GitHub

จัดเก็บค่าที่ละเอียดอ่อน (คีย์ SSH โทเค็น API และรหัสผ่านฐานข้อมูล) เป็นข้อมูลลับของคลังข้อมูลที่เข้ารหัสไว้ใน Settings → Secrets and Variables

การแคชส่วนพึ่งพา

แคชแพ็กเกจ Composer ระหว่างการทำงานแต่ละครั้งเพื่อเร่งเวิร์กโฟลว์

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

การเรียกใช้การทดสอบ

รวมคอนเทนเนอร์บริการ MySQL หรือ PostgreSQL เพื่อใช้ในการทดสอบการเชื่อมต่อระบบ

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

ตัวแปรสภาพแวดล้อมใน Actions

ส่งข้อมูลลับเป็นตัวแปรสภาพแวดล้อมไปยังขั้นตอนต่าง ๆ ของเวิร์กโฟลว์

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

เกณฑ์ตรวจคุณภาพโค้ด

ระงับการนำระบบไปใช้งานหากการตรวจสอบคุณภาพโค้ดไม่ผ่าน

      - name: PHPStan static analysis
        run: vendor/bin/phpstan analyse src --level=6
      - name: PHP_CodeSniffer
        run: vendor/bin/phpcs src --standard=PSR12

การทดสอบแบบเมทริกซ์

ทดสอบกับ 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 }}

กลยุทธ์การนำระบบไปใช้งาน

แนวทางทั่วไป ได้แก่ git pull โดยตรง (เรียบง่าย), rsync (ซิงค์ไฟล์ได้เร็ว), blue-green (ไม่หยุดให้บริการ) และ Deployer PHP (อัตโนมัติและไม่หยุดให้บริการ) ให้เลือกตามระดับเวลาหยุดให้บริการที่ยอมรับได้

สรุป

กำหนดเวิร์กโฟลว์ใน .github/workflows/*.yml เรียกใช้การทดสอบเมื่อมีการส่งโค้ดทุกครั้ง และนำระบบไปใช้งานเมื่อรวมโค้ดเข้าสาขา main แคชส่วนพึ่งพา จัดเก็บข้อมูลลับใน GitHub Secrets และเพิ่มเกณฑ์ตรวจคุณภาพก่อนนำระบบไปใช้งาน

ตรวจสอบความเข้าใจ

ค่าที่ละเอียดอ่อน เช่น คีย์ SSH ถูกจัดเก็บไว้ที่ใดสำหรับ GitHub Actions

คำถามที่พบบ่อย

บทเรียน “การนำไปใช้งานด้วย GitHub Actions” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การนำไปใช้งานด้วย GitHub Actions” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การนำไปใช้งานด้วย GitHub Actions”

ทำขั้นตอนการสร้าง การทดสอบ และการนำไปใช้งานผ่าน SSH ในเวิร์กโฟลว์ GitHub Actions ให้เป็นอัตโนมัติ คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การนำไปใช้งานด้วย GitHub Actions” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การกำหนดค่า Nginx และ PHP-FPM
  2. ตัวแปรสภาพแวดล้อมและไฟล์ .env
  3. การนำไปใช้งานด้วย GitHub Actions
  4. การสร้างอิมเมจ Docker สำหรับแอปพลิเคชัน PHP
← กลับไปที่ PHP Academy