0Pricing
React Academy · Lekcja

CI/CD React z GitHub Actions

Automatyzuj kroki lintowania, testowania, budowania i wdrażania w przepływie pracy GitHub Actions przy każdym wypchnięciu zmian.

CI/CD React z GitHub Actions to bezpłatna lekcja React Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Czym jest GitHub Actions?

GitHub Actions to platforma CI/CD wbudowana w GitHub. Przepływy pracy należy definiować w plikach YAML w katalogu .github/workflows/; są one uruchamiane po wypchnięciu zmian, utworzeniu żądania pull request lub zgodnie z harmonogramem.

Podstawowy przepływ CI

Minimalny przepływ pracy, który przy każdym wypchnięciu zmian oraz każdym żądaniu pull request instaluje zależności, uruchamia lintowanie i testy.

# .github/workflows/ci.yml
name: CI

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

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'npm'
      - run: npm ci
      - run: npm run lint
      - run: npm test -- --coverage

Buforowanie node_modules

Należy buforować ~/.npm (bufor npm, a nie node_modules), aby przyspieszyć instalowanie zależności. actions/setup-node obsługuje to za pomocą opcji cache.

- uses: actions/setup-node@v4
  with:
    node-version: 20
    cache: 'npm' # caches ~/.npm based on package-lock.json hash

Etap budowania

Po testach należy dodać etap budowania, aby sprawdzić, czy projekt kompiluje się bez błędów.

- name: Build
  run: npm run build

# For Next.js — catch TypeScript errors:
- name: Type Check
  run: npx tsc --noEmit

Wdrażanie do Vercel po scaleniu

Należy wdrażać aplikację do Vercel po wypchnięciu zmian do gałęzi main, używając Vercel CLI w przepływie pracy.

- name: Deploy to Vercel
  env:
    VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
    VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
    VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
  run: |
    npm install -g vercel
    vercel pull --yes --environment=production --token=$VERCEL_TOKEN
    vercel build --prod --token=$VERCEL_TOKEN
    vercel deploy --prebuilt --prod --token=$VERCEL_TOKEN

Wdrażanie do S3 po scaleniu

Po pomyślnym zbudowaniu projektu na gałęzi main należy zsynchronizować pliki wynikowe z S3 i unieważnić pamięć podręczną CloudFront.

- name: Deploy to S3
  if: github.ref == 'refs/heads/main'
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  run: |
    aws s3 sync dist/ s3://my-bucket/ --delete
    aws cloudfront create-invalidation --distribution-id ${{ secrets.CF_ID }} --paths "/*"

Testy E2E Playwright w CI

Po zbudowaniu aplikacji należy uruchamiać testy E2E Playwright w CI. Pliki binarne przeglądarek należy instalować w osobnym, przeznaczonym do tego etapie.

- name: Install Playwright Browsers
  run: npx playwright install --with-deps chromium

- name: Run E2E Tests
  run: npx playwright test

- uses: actions/upload-artifact@v4
  if: failure()
  with:
    name: playwright-report
    path: playwright-report/

Równoległe zadania w macierzy

Należy użyć strategii macierzowej, aby uruchamiać testy równolegle dla wielu wersji Node.js lub różnych środowisk.

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18, 20, 22]
    steps:
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}

Zarządzanie sekretami

Wrażliwe wartości (klucze API i tokeny wdrożeniowe) należy przechowywać jako GitHub Secrets (repozytorium → Settings → Secrets). W przepływach pracy można uzyskać do nich dostęp za pomocą ${{ secrets.MY_SECRET }}.

Warunkowe etapy

Należy używać warunków if:, aby uruchamiać etapy tylko dla określonych gałęzi, zdarzeń związanych z żądaniami pull request lub po pomyślnym zakończeniu poprzednich etapów.

- name: Deploy
  if: github.ref == 'refs/heads/main' && github.event_name == 'push'
  run: npm run deploy

Odznaki statusu

Należy dodać do pliku README odznakę statusu budowania, aby jednym spojrzeniem sprawdzać stan CI.

<!-- README.md -->
![CI](https://github.com/myorg/myrepo/actions/workflows/ci.yml/badge.svg)

Szybkie sprawdzenie

Jaka funkcja GitHub Actions uruchamia jednocześnie to samo zadanie dla wielu konfiguracji, na przykład różnych wersji Node.js?

Podsumowanie

Przepływy CI należy definiować w plikach YAML w katalogu .github/workflows/. Do szybkiego instalowania zależności należy używać actions/setup-node z opcją cache: 'npm'. Należy dodać etapy lintowania, sprawdzania typów, testowania i budowania. Wdrażanie należy uruchamiać warunkowo po wypchnięciu zmian do gałęzi main. Sekrety należy przechowywać w GitHub Secrets, a kompilacje macierzowe wykorzystywać do testowania wielu wersji.

Często zadawane pytania

Czy lekcja „CI/CD React z GitHub Actions” jest bezpłatna?

Tak — pełny tekst „CI/CD React z GitHub Actions” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „CI/CD React z GitHub Actions”?

Automatyzuj kroki lintowania, testowania, budowania i wdrażania w przepływie pracy GitHub Actions przy każdym wypchnięciu zmian. Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć React Academy?

Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „CI/CD React z GitHub Actions”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?

Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Wdrażanie na Vercel: zero konfiguracji i adresy podglądu
  2. Hosting React SPA w AWS S3 i CloudFront
  3. Konteneryzacja aplikacji React/Next.js
  4. CI/CD React z GitHub Actions
← Powrót do React Academy