Il codice di un sito vive in rilasci che non cambiano più dopo essere stati creati. Pubblicare è fatto di due passi: creare il rilascio da una cartella, poi attivarlo. Per pubblicare dallo staging usa invece Safe Push.
Prepara il codice
Metti il codice in una cartella dentro la cartella del sito, /srv/sites/<dominio>. Il modo più
semplice è un checkout in ~/src, che esiste quando la shell del sito è
attiva:
mkdir -p ~/src/app && cd ~/src/app
git clone <repository> .
Via SFTP puoi scrivere solo in shared/, logs/, tmp/ e, con la shell attiva, src/: la
cartella del sito in sé appartiene a root. Il pannello rifiuta una cartella fuori da quella del sito,
la cartella del sito stessa e releases/. Un collegamento sul percorso della cartella (come
current) viene seguito se resta dentro il sito; i collegamenti dentro la cartella vengono copiati
come collegamenti, mai seguiti.
Crea il rilascio
- Apri il sito e scegli la scheda Rilasci.
- Nel riquadro Nuovo rilascio scegli Un checkout in ~/src e la cartella in Checkout, oppure Un’altra cartella del sito e scrivi il percorso in Cartella.
- Premi Crea rilascio.
Con cgctl:
cgctl --wait deploy <site-id> /srv/sites/<dominio>/src/app
La risposta contiene release_id e deployment_id. Il nuovo rilascio compare nella scheda
Rilasci come creato: è pronto ma non ancora attivo. Durante la creazione il pannello:
- copia la cartella in
releases/<release_id>; - collega
wp-config.phpewp-content/uploadsa quelli inshared/del sito: configurazione e file caricati non vengono mai dalla cartella pubblicata; - sui siti WordPress, aggiunge il plugin del pannello e, se la object cache è attiva, il suo drop-in;
- prepara una copia compressa dei file CSS, JS, MJS, SVG, JSON, XML, HTML, TXT e MAP tra 1 KiB e 10 MiB;
- toglie i permessi di scrittura al gruppo e agli altri utenti.
Se un passo fallisce, il rilascio non viene creato e la riga resta non riuscito.
Attiva il rilascio
- Apri il sito e scegli la scheda Rilasci.
- Premi Attiva sulla riga del rilascio e conferma.
Il collegamento current passa al nuovo rilascio in un solo passo: ogni richiesta vede il
rilascio vecchio o quello nuovo. Poi PHP del sito ricarica il codice, la cache di pagina viene
svuotata e riscaldata in background. Il rilascio che era attivo diventa sostituito.
Dall'API, attiva un rilascio con POST /api/deployments/<deployment_id>/promote.
Quanti rilasci restano
Dopo ogni attivazione restano il rilascio attivo, quelli più recenti e i 5 più recenti tra quelli più vecchi. Gli altri vengono eliminati; le loro righe restano nella scheda Rilasci, ma non si possono più attivare.
Prossimo passo
Torna a un rilascio precedente se il nuovo non va.