การนำไปใช้งานด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกำหนดค่า Nginx และ PHP-FPM
- ตัวแปรสภาพแวดล้อมและไฟล์ .env
- การนำไปใช้งานด้วย GitHub Actions
- การสร้างอิมเมจ Docker สำหรับแอปพลิเคชัน PHP