diff --git a/PROMPT_CLOUDFLARE.md b/PROMPT_CLOUDFLARE.md new file mode 100644 index 0000000..0aac10d --- /dev/null +++ b/PROMPT_CLOUDFLARE.md @@ -0,0 +1,149 @@ +# Prompt: automatyczne wdrażanie aplikacji do Cloudflare Pages + +Chcę przygotować i wdrożyć tę aplikację webową do Cloudflare Pages. + +Pracuj bez GitHuba — użyj lokalnego repozytorium Git oraz Wrangler CLI. + +## Wymagania + +1. Przeanalizuj projekt i ustal: + - gdzie znajduje się główny plik aplikacji, + - jakie pliki są potrzebne do uruchomienia strony, + - czy projekt ma repozytorium Git, + - jaki jest aktualny remote Git, + - czy istnieje folder przeznaczony do publikacji. + +2. Przygotuj folder wdrożeniowy, np. `wersja1` albo `dist`. + + Folder powinien zawierać wyłącznie pliki potrzebne do działania aplikacji: + - `index.html`, + - pliki CSS, + - pliki JavaScript, + - pliki CSV/JSON, + - obrazy i inne używane zasoby. + +3. Jeśli aplikacja korzysta z plików znajdujących się poza folderem wdrożeniowym, przygotuj synchronizację. Przed każdym wdrożeniem kopiuj aktualne pliki źródłowe do folderu publikacji, aby lokalna i opublikowana wersja nie różniły się. + +4. Skonfiguruj Cloudflare Pages przez Wrangler: + - bez GitHuba, + - bez GitHub Actions, + - użyj istniejącego projektu Pages, jeśli istnieje, + - jeśli projekt nie istnieje, przygotuj polecenie jego utworzenia. + +5. Przygotuj skrypt `deploy-cloudflare.ps1`, który: + - wskazuje folder wdrożeniowy, + - synchronizuje pliki źródłowe, + - używa `wrangler.cmd`, a nie `wrangler.ps1`, + - działa przy zablokowanej polityce wykonywania skryptów PowerShell, + - automatycznie dodaje `C:\Program Files\nodejs` do PATH, jeśli Node.js jest zainstalowany, + - pobiera nazwę projektu Cloudflare z lokalnej konfiguracji Git, + - obsługuje opcjonalny Cloudflare Account ID, + - jasno zgłasza błędy. + +6. Nie zapisuj tokenów Cloudflare w kodzie ani w repozytorium. + + Logowanie powinno używać: + + ```powershell + & "$env:APPDATA\npm\wrangler.cmd" login + ``` + + Jeśli Node.js lub Wrangler nie są dostępne: + - sprawdź instalację Node.js, + - zainstaluj Node.js LTS, + - zainstaluj Wrangler, + - sprawdź działanie poleceniem: + + ```powershell + & "$env:APPDATA\npm\wrangler.cmd" --version + ``` + +7. Przygotuj instalator `install-cloudflare-hook.ps1`, który: + - instaluje hook w `.git/hooks`, + - ustawia lokalne `core.hooksPath`, + - nadaje hookowi prawa wykonywania, + - działa na Windows, + - uruchamia wdrożenie automatycznie przed każdym `git push`. + + Użyj hooka `pre-push`, ponieważ `post-push` może nie być wykonywany poprawnie przez Git for Windows. + +8. Przygotuj plik `hooks/pre-push`, który: + - uruchamia `deploy-cloudflare.ps1`, + - zatrzymuje push, jeśli wdrożenie się nie powiedzie, + - wyświetla komunikaty: + + ```text + Cloudflare Pages: wdrażanie przed pushem… + Cloudflare Pages: wdrożenie zakończone + ``` + +9. Przygotuj instrukcję uruchomienia: + + ```powershell + Set-Location "ŚCIEŻKA_DO_PROJEKTU" + ``` + + ```powershell + & "$env:APPDATA\npm\wrangler.cmd" login + ``` + + Sprawdź projekty: + + ```powershell + & "$env:APPDATA\npm\wrangler.cmd" pages project list --json + ``` + + Ustaw nazwę projektu: + + ```powershell + git config --local cloudflare.pagesProject "NAZWA_PROJEKTU" + ``` + + Opcjonalnie ustaw Account ID: + + ```powershell + git config --local cloudflare.accountId "ACCOUNT_ID" + ``` + + Zainstaluj hook: + + ```powershell + powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\install-cloudflare-hook.ps1" + ``` + + Wykonaj pierwszy deploy: + + ```powershell + powershell.exe -NoProfile -ExecutionPolicy Bypass -File ".\deploy-cloudflare.ps1" + ``` + +10. Po wdrożeniu sprawdź: + - czy Cloudflare utworzył nowy deployment, + - jaki jest adres `*.pages.dev`, + - czy aplikacja działa w przeglądarce, + - czy aktualne zmiany są widoczne, + - czy folder wdrożeniowy zawiera właściwe pliki. + + Historię deploymentów sprawdź poleceniem: + + ```powershell + & "$env:APPDATA\npm\wrangler.cmd" pages deployment list --project-name "NAZWA_PROJEKTU" --json + ``` + +11. Wykonaj test końcowy: + + ```powershell + git add . + git commit -m "Konfiguracja automatycznego wdrażania Cloudflare" + git push origin main + ``` + + Potwierdź, że przed pushem uruchomił się Wrangler i że Cloudflare utworzył nowy deployment. + +12. Jeśli `git push` nie działa: + - sprawdź osobno uwierzytelnienie do repozytorium Git, + - nie zakładaj, że problem dotyczy Cloudflare, + - jeśli push jest niemożliwy, wykonaj tymczasowy deploy bezpośrednio przez Wrangler, + - wyraźnie poinformuj, że lokalny commit może istnieć, ale nie być wysłany do zdalnego repozytorium. + +Pracuj samodzielnie, wykonuj zmiany w plikach, testuj je i nie kończ zadania na samej instrukcji. Nie twórz GitHuba ani GitHub Actions, chyba że użytkownik wyraźnie o to poprosi. diff --git a/index.html b/index.html index 21ab379..c55b065 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@
-