Websites

Preview Implementaties Voor Pull Requests

Preview deploys give every pull request its own live URL, built from that branch's code, so reviewers can click through the actual change instead of reading a diff and guessing. Each preview updates…

Preview-implementaties geven elke pull request zijn eigen live URL, gebouwd uit de code van die branch, zodat reviewers door de werkelijke wijziging kunnen klikken in plaats van een diff te lezen en te gissen. Elke preview wordt bijgewerkt wanneer je een nieuwe commit pusht en wordt automatisch opgeruimd wanneer de pull request sluit.

Waar Preview-implementaties zich bevinden

Open Websites, klik op de site, open het menu Environments in de site-tabbalk en kies Preview. De pagina heeft als titel Preview deploys.

Previews zijn apart van staging. Staging is één langdurige kopie van de site die je opzettelijk naar pusht; een preview is een kortstondige omgeving die per pull request wordt aangemaakt en daarna wordt weggegooid. Veel teams gebruiken beide. Zie Staging Environments voor het andere deel.

Preview deploys-pagina in KPanel

Stel eerst Git Deploy in

Previews zijn geen zelfstandige functie. Ze hergebruiken de implementatiesleutel en het buildcommando van de productiesite, dus de site heeft een werkende Git Deploy-configuratie nodig voordat previews kunnen worden ingeschakeld.

Als Git Deploy niet is geconfigureerd, zegt de pagina Set up Git deploy first en biedt een knop Go to Git deploy in plaats van het inschakelen van het formulier. Volg Deploying a Site From Git en kom daarna terug.

Als Git Deploy is verbonden maar geen buildcommando heeft, toont de Preview-pagina een waarschuwing. Previews zullen aannemen dat de repository al is gebouwd, met statische bestanden in de root. Dat klopt voor een gewone HTML-site en is fout voor alles dat compileert, dus stel een buildcommando in op de Git Deploy-pagina als je project er een nodig heeft.

Previews inschakelen

  1. Typ in de kaart Enable preview deploys de repository in de vorm owner/repo. Niet een URL, niet een SSH-adres: alleen de twee onderdelen, bijvoorbeeld acme/marketing-site.
  2. Klik op Enable.

Alles wat niet overeenkomt met owner/name wordt afgewezen met Repo must be in owner/name format.

Onmiddellijk na het inschakelen toont KPanel het webhook-handtekeningsgeheim in een kaart met als titel Copy your webhook secret now, met een waarschuwing dat je het daarna niet meer zult zien.

Kopieer het geheim voordat je de pagina verlaat. Het wordt eenmaal gegenereerd en kan daarna niet meer worden opgehaald. Als je het kwijtraakt, is de oplossing om het opnieuw te genereren, waardoor het oude wordt ongeldig gemaakt en je je repository-webhook toch moet bijwerken.

De Webhook toevoegen aan je repository

De geconfigureerde kaart toont een Webhook URL om in je repository-instellingen onder Webhooks in te plakken. Configureer het met:

  • Payload URL: de webhook-URL die op de pagina wordt weergegeven.
  • Secret: de waarde die je zojuist hebt gekopieerd.
  • Content type: JSON.
  • Events: pull request-gebeurtenissen, plus pushes, zodat nieuwe commits op een openstaande pull request de preview herbouwen.

Zodra dit in orde is, bouwt het openen van een pull request binnen enkele minuten een preview. Een achtergrondtaak controleert elke minuut op nieuw preview-werk, dus je hoeft in KPanel niets in te drukken.

Preview-URL's

Elke preview krijgt zijn eigen hostname van de vorm pr-<pull-request-number>-<site-id>.kapsulecloud.app, gedekt door een wildcard-certificaat, zodat het via HTTPS wordt bediend zonder dat je zelf een certificaatstap hoeft te doen.

De betrouwbare manier om er een te openen is de knop Open op de rij van de preview in Recent previews, die de exacte URL bevat die voor die build is ingericht. Plak die link in de pull request zodat reviewers KPanel helemaal niet hoeven te vinden.

De lijst Recent previews lezen

De sectie Recent previews toont de meest recente previews, nieuwste eerst. Elke rij toont het pull request-nummer en -titel, de branch, de commit en een status:

StatusBetekenis
BUILDINGNu klonen en bouwen
LIVEAan het serveren op zijn preview-URL
FAILEDDe build is mislukt; vouw het logboek uit om te zien waarom
DESTROYEDOpgeruimd, meestal omdat de pull request sloot

Klik op Toggle build log op een rij om de uitvoer ervan inline uit te vouwen. Dit logboek is de eerste plaats om te kijken wanneer een preview mislukt, en het is dezelfde uitvoer die je build lokaal zou produceren.

Als de lijst leeg is, zegt de pagina dit: open een pull request op de repository en een preview wordt binnen enkele minuten gebouwd.

Het Webhook-geheim roteren

Klik op Regenerate secret in de geconfigureerde kaart. KPanel vraagt je om te bevestigen en maakt duidelijk dat het huidige geheim onmiddellijk niet meer werkt en je het daarna in de webhook-instellingen van je repository moet bijwerken.

Het nieuwe geheim wordt eenmaal weergegeven, in dezelfde eenmalige kaart als daarvoor. Kopieer het, werk dan de webhook in je repository bij. Tussen die twee momenten worden inkomende webhook-afleveringen afgewezen, dus voer de twee stappen achter elkaar uit.

Genereer het geheim opnieuw wanneer iemand met repository-beheerderstoegang vertrekt, of als het geheim ooit ergens is geplakt waar het niet hoorde te zijn, zoals een gedeeld chatkanaal of een ticket.

Previews uitschakelen

Klik op Disable. De configuratie wordt uitgeschakeld en het opgeslagen geheim wordt gewist. Bestaande previews worden niet meer herbouwd.

Ruim het op door de webhook in je repository ook te verwijderen. Het zal fouten gaan genereren in plaats van iets schadelijks te doen, maar een webhook die voor altijd fouten retourneert, is lawaai in je repository's afleveringslogboek.

Kosten en huishouden

Previews bouwen en serveren echte code, dus ze gebruiken dezelfde middelen als elke andere implementatie op de site. Twee gewoonten houden dat onder controle:

  • Sluit pull requests die je niet meer bewerkt. Een gesloten pull request heeft zijn preview automatisch opgeruimd.
  • Wijs previews niet naar productiereferenties. Geef ze testsleutels via het tabblad Secrets preview-omgeving, die precies voor dit doel bestaat zodat preview- en productieconfiguratie niet kunnen worden verwisseld.

Een preview-URL is niet privé. Het is een echte, openbaar bereikbare hostname met een geldig certificaat, en iedereen die de link heeft, kan het openen. Gebruik een preview niet om alles te controleren dat echte klantgegevens bevat, en zaai preview-omgevingen niet in vanuit een dump van een productiedatabase.

Probleemoplossing

Er wordt niets gebouwd wanneer een pull request wordt geopend. Controleer de recente afleveringen van de webhook in je repository. Een 401 of 403 betekent dat het geheim niet overeenkomt, dus genereer het opnieuw en werk beide uiteinden bij. Geen aflevering betekent dat de webhook niet is ingeschreven op pull request-gebeurtenissen.

De preview bouwt maar toont een directorylijst of een 404. De uitvoermap op de Git Deploy-pagina komt niet overeen met waar je build werkelijk schrijft. Previews erven deze instelling van de productie.

De build mislukt alleen in de preview. De meest voorkomende oorzaak is een afhankelijkheid of een omgevingsvariabele die in productie bestaat maar nooit aan de preview-omgeving is toegevoegd. Controleer het tabblad preview op de pagina Secrets.

Een preview-URL werkt niet meer. Kijk naar de status op de rij ervan. DESTROYED betekent dat de pull request sloot en de omgeving werd teruggekregen, wat het beoogde gedrag is.

Waar je daarna naartoe gaat

Nog steeds hulp nodig?

Stuur ons een e-mail op support@kapsulehost.com of open een chat in KPanel.

KPanel openen
Preview Implementaties Voor Pull Requests