JustPaste.id JustPaste.ID - Layanan Shortlink justpaste dengan CPM tertinggi untuk trafik Indonesia. Join sekarang

GitHub Actions: CI/CD Pipeline untuk Project Laravel

Admin JustPaste · 29 April 2026 · 1 menit baca

Continuous Integration dan Continuous Deployment (CI/CD) tidak lagi eksklusif untuk tim besar. GitHub Actions membuatnya accessible untuk semua.

Apa itu CI/CD?

  • CI (Continuous Integration): Otomasi run test setiap kali push kode

  • CD (Continuous Deployment): Otomasi deploy ke server setelah test pass

Membuat Workflow File

# .github/workflows/laravel.yml
name: Laravel CI

on: push: branches: [main, develop] pull_request: branches: [main]

jobs: test: runs-on: ubuntu-latest

services: mysql: image: mysql:8.0 env: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: testing options: --health-cmd="mysqladmin ping" --health-retries=3

steps: - uses: actions/checkout@v4

- name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.5' extensions: mbstring, pdo_mysql, redis

- name: Install Dependencies run: composer install --prefer-dist --no-progress

- name: Setup .env run: | cp .env.testing .env php artisan key:generate

- name: Run Tests run: php artisan test --parallel

Deployment Step

  deploy:
    needs: test
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'

steps: - 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 /var/www/app git pull origin main composer install --no-dev php artisan migrate --force php artisan cache:clear

Artikel Lainnya

Top Kategori