Integrazione GitHub Actions

Per gli utenti avanzati, GitHub CI/CD (Continuous Integration/Continuous Delivery o Continuous Deployment) può distribuire automaticamente le modifiche al codice sul sito Kinsta ogni volta che un nuovo commit viene inviato al branch designato. Questa configurazione consente l’implementazione senza soluzione di continuità del codice dal tuo ambiente locale tramite SSH e GitHub actions, consentendo aggiornamenti continui al sito.

Per seguire questi passaggi, è necessario disporre di un sito esistente ospitato su Kinsta e di un account GitHub.

1. Scaricare un backup del proprio sito

È possibile scaricare un backup del proprio sito per configurare il repository GitHub e lavorarci localmente. In alternativa, puoi utilizzare DevKinsta per estrarre il tuo sito dal server Kinsta e lavorarci localmente.

In MyKinsta, vai su Siti > nome del sito > Backup > Scarica > Crea backup ora.

Creare un backup scaricabile in MyKinsta.
Creare un backup scaricabile in MyKinsta.

Quando il backup è pronto, clicca su Scarica, salvalo sul computer locale e decomprimi i file in una cartella.

2. Configurare il repository GitHub

Apri la cartella contenente i file del sito nel tuo editor di codice preferito. Per evitare di caricare file core di WordPress non necessari, upload multimediali o informazioni sensibili, aggiungi un file .gitignore alla directory principale del progetto. Puoi utilizzare un template standard di WordPress .gitignore, copiarne il contenuto e salvarlo per assicurarti che vengano tracciati solo i file essenziali.

Crea un repository GitHub e invia i file del sito su GitHub.

3. Configurare i GitHub Secrets per Kinsta

Per automatizzare le distribuzioni da GitHub a Kinsta, sono necessari i dettagli chiave SSH, inclusi nome utente, password, porta e indirizzo IP. Poiché si tratta di informazioni sensibili, è necessario conservarle in modo sicuro come segreti GitHub.

All’interno di GitHub, vai al repository, clicca su Settings > Secrets and variables > Actions > New repository secret.

Aggiungi i seguenti segreti utilizzando i dettagli dell’utente SFTP/SSH primario dalla pagina Info del sito in MyKinsta:

Secret nameSegreto
KINSTA_SERVER_IPHost, ad esempio 12.34.56.78
KINSTA_USERNAMENome utente, ad esempio kinstahelp
PASSWORDPassword
PORTAPorta, ad esempio 12345
Informazioni SSH per aggiungere segreti a GitHub.
Informazioni SSH per aggiungere segreti a GitHub.

4. Generare una chiave SSH sul server Kinsta

Apri un nuovo terminale ed esegui l’SSH sul server Kinsta utilizzando il comando terminale SSH dalla pagina Info del sito in MyKinsta.

Comando terminale SSH per il tuo sito.
Comando terminale SSH per il tuo sito.

Inserisci la password del sito, quindi genera una nuova chiave SSH utilizzando il seguente comando, sostituendo [email protected] con il tuo indirizzo e-mail:

ssh-keygen -t rsa -b 4096 -C “[email protected]

Premi Invio per salvare la chiave nella posizione predefinita e lascia vuoto il campo della passphrase quando richiesto.

Generare una chiave SSH.
Generare una chiave SSH.

5. Aggiungere la chiave SSH a GitHub

Accedi al contenuto del file della chiave pubblica (ad esempio, ~/.ssh/id_rsa.pub), con il seguente comando:

cat ~/.ssh/id_rsa.pub

In GitHub, vai su Settings > SSH and GPG keys > New SSH Key, inserisci un titolo (ad esempio, “Chiave server Kinsta”), assicurati che il Key type sia Authentication Key, incolla la chiave pubblica in Key e fai clic su Add SSH Key. Se sei membro di un’organizzazione che utilizza chiavi di distribuzione, devi aggiungere la tua chiave SSH come chiave di distribuzione. Per maggiori dettagli, consulta la documentazione GitHub sulle chiavi di distribuzione.

6. Configurare Git per utilizzare SSH sul server Kinsta

In MyKinsta, nella pagina Info, copia il Percorso da Dettagli ambiente.

Percorso nella pagina Info del tuo sito.
Percorso nella pagina Informazioni del tuo sito.

Nel terminale, naviga nella directory live del tuo sito con il seguente comando, sostituendo /www/your-site/public con il percorso copiato da MyKinsta.

cd /www/tuo-sito/public

Inizializza la directory come repository Git e imposta l’URL remoto per utilizzare SSH con il seguente comando, sostituendo your-username e your-repo con le tue credenziali git e il tuo repository:

git init
git remote add origin [email protected]:your-username/your-repo.git

Verifica che la configurazione SSH funzioni eseguendo il seguente comando:

Dovresti vedere un messaggio simile a: “Hi your-username! You’ve successfully authenticated, but GitHub does not provide shell access”. Il tuo server Kinsta è ora pronto per ricevere e distribuire gli aggiornamenti da GitHub direttamente tramite GitHub Actions.

7. Creare il flusso di lavoro GitHub Actions

Questo flusso di lavoro distribuisce automaticamente le modifiche a Kinsta ogni volta che si esegue il push sul branch main. Per automatizzare la distribuzione, è necessario definire come avverrà la distribuzione utilizzando un file YAML.

Nel tuo repository GitHub, crea una nuova directory chiamata .github/workflows all’interno di questa directory, crea un nuovo file chiamato deploy.yml e aggiungi il seguente contenuto al file, sostituendo your-site con il nome della cartella dal percorso sul tuo sito Kinsta:

name: Deploy to Kinsta

on:
  push:
    branches:
      - main # Trigger the workflow only when changes are pushed to the main branch

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      # Setup Node.js (only if needed for build tasks)
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20.x'

      # Checkout the latest code from the GitHub repository
      - name: Checkout code
        uses: actions/[email protected]

      # Deploy to Kinsta via SSH
      - name: Deploy via SSH
        uses: appleboy/[email protected]
        with:
          host: ${{ secrets.KINSTA_SERVER_IP }}
          username: ${{ secrets.KINSTA_USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }} # Optional, default is 22
          script: |
            # Navigate to the live site directory
            cd /www/your-site/public

            # Pull the latest changes from the GitHub repository
            git fetch origin main
            git reset --hard origin/main  # Ensure the live site matches the latest main branch

Questo flusso di lavoro esegue le seguenti operazioni:

  • Trigger. Il flusso di lavoro viene attivato ogni volta che il codice viene inviato al branch main del repository GitHub.
  • Job. Il flusso di lavoro contiene un job chiamato deploy, che viene eseguito su una macchina virtuale Ubuntu (ubuntu-latest).
  • Checkout del codice. Utilizza l’azione actions/[email protected] per recuperare il codice più recente dal repository GitHub.
  • Distribuzione su Kinsta tramite SSH:
    • Il plugin appleboy/ssh-action stabilisce una connessione SSH con il server Kinsta utilizzando i segreti memorizzati in GitHub (host, nome utente, password e, facoltativamente, la porta). Lo script all’interno di questo passaggio esegue i seguenti comandi:
    • Comandi di distribuzione:
      • cd /www/your-site/private. Naviga nella directory live in cui è ospitato WordPress.
      • git fetch origin main. Recupera le ultime modifiche dal branch main nel tuo repository GitHub.
      • git reset --hard origin/main. Aggiorna il sito live con l’ultimo codice dal branch.

8. Testare il flusso di lavoro

Una volta impostato il flusso di lavoro, è possibile testarlo inviando una piccola modifica al branch main del repository GitHub. Ogni volta che si invia una modifica, GitHub Actions attiva automaticamente la distribuzione, recuperando l’ultima versione del codice e distribuendola sul sito live su Kinsta.

Puoi monitorare lo stato della tua distribuzione andando alla scheda Actions nel tuo repository GitHub. Se il flusso di lavoro incontra degli errori, vedrai dei log dettagliati che ti aiuteranno a risolvere i problemi.

Questo articolo ti è stato utile?

© 2013 - 2026 Kinsta Inc. Tutti i diritti riservati. Kinsta®, MyKinsta®, DevKinsta® e Sevalla® sono marchi di proprietà di Kinsta Inc.Il marchio WordPress® è proprietà intellettuale di WordPress Foundation, mentre i marchi Woo® e WooCommerce® sono proprietà intellettuale di WooCommerce, Inc. L'uso dei nomi WordPress®, Woo® e WooCommerce® in questo sito web è solo a scopo identificativo e non implica il sostegno da parte di WordPress Foundation o WooCommerce, Inc. Kinsta non è sostenuto o posseduto da, o affiliato a, WordPress Foundation o WooCommerce, Inc. Informazioni legali