

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esegui l'esempio di GitHub Enterprise Server per CodeBuild
<a name="sample-github-enterprise"></a>

AWS CodeBuild supporta GitHub Enterprise Server come repository di origine. Questo esempio mostra come configurare i CodeBuild progetti quando nel repository di GitHub Enterprise Server è installato un certificato. Mostra anche come abilitare i webhook in modo da CodeBuild ricostruire il codice sorgente ogni volta che una modifica al codice viene inserita nell'archivio di Enterprise Server. GitHub 

**Topics**
+ [Prerequisiti](#sample-github-enterprise-prerequisites)
+ [Fase 1: Creare un progetto di compilazione con GitHub Enterprise Server e abilitare i webhook](#sample-github-enterprise-running)

## Prerequisiti
<a name="sample-github-enterprise-prerequisites"></a>

1. Genera un token di accesso personale per il tuo progetto. CodeBuild Ti consigliamo di creare un utente GitHub Enterprise e generare un token di accesso personale per questo utente. Copialo negli appunti in modo che possa essere utilizzato durante la CodeBuild creazione del progetto. Per ulteriori informazioni, consulta [Creazione di un token di accesso personale per la riga di comando sul sito Web](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) di GitHub Help.

   Quando si crea il token di accesso personale, includere l'ambito del **repo (repository)** nella definizione.  
![\[L'ambito del repo nella definizione.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/scopes.png)

1. Scarica il certificato da GitHub Enterprise Server. CodeBuild utilizza il certificato per stabilire una connessione SSL affidabile al repository.

   **Client Linux/macOS:**

   Dalla finestra di un terminale, eseguire il comando riportato qui sotto:

   ```
   echo -n | openssl s_client -connect HOST:PORTNUMBER \
       | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder/filename.pem
   ```

   Sostituire i segnaposto nel comando con i seguenti valori:

   *HOST*. L'indirizzo IP del repository GitHub Enterprise Server.

   *PORTNUMBER*. Il numero di porta che stai utilizzando per la connessione (ad esempio, 443).

   *folder*. La cartella in cui hai scaricato il certificato.

   *filename*. Il nome del file del certificato.
**Importante**  
Salva il certificato come file .pem.

   **Client Windows:**

   Utilizzate il browser per scaricare il certificato da GitHub Enterprise Server. Per visualizzare i dettagli del certificato del sito, selezionare l'icona a forma di lucchetto. Per informazioni su come esportare il certificato, consultare la documentazione del browser.
**Importante**  
Salva il certificato come file .pem.

1. Caricare il file di certificato in un bucket S3. Per informazioni su come creare un bucket S3, consulta [Come creare un bucket S3?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) Per informazioni sul caricamento di oggetti in un bucket S3, consulta [Come caricare file e cartelle in un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).
**Nota**  
Questo bucket deve trovarsi nella stessa AWS regione delle tue build. Ad esempio, se si richiede di CodeBuild eseguire una build nella regione Stati Uniti orientali (Ohio), il bucket deve trovarsi nella regione Stati Uniti orientali (Ohio).

## Fase 1: Creare un progetto di compilazione con GitHub Enterprise Server e abilitare i webhook
<a name="sample-github-enterprise-running"></a>

1. [Apri la AWS CodeBuild console su codebuild/homehttps://console.aws.amazon.com/codesuite/.](https://console.aws.amazon.com/codesuite/codebuild/home)

1.  Se viene visualizzata una pagina di CodeBuild informazioni, scegli **Crea** progetto di compilazione. Altrimenti, nel riquadro di navigazione, espandi **Crea**, scegli **Crea progetti**, quindi scegli **Crea progetto di compilazione**. 

1. In **Project name (Nome progetto)** immettere un nome per questo progetto di compilazione. I nomi dei progetti di compilazione devono essere univoci per ogni AWS account. Puoi anche includere una descrizione opzionale del progetto di compilazione per aiutare gli altri utenti a capire a cosa serve questo progetto.

1. In **Source**, in **Source provider**, scegli **GitHub Enterprise Server**.
   + Scegli **Gestisci le credenziali dell'account**, quindi scegli **Token di accesso personale**. Per **Service**, scegli **Secrets Manager (consigliato)** e configura il tuo segreto. Quindi**, in GitHub Enterprise Personal Access Token**, inserisci il tuo token di accesso personale e scegli **Salva**.
   + In **Repository URL (URL Repository)**, inserire il percorso del repository, compreso il nome del repository.
   + Espandere **Additional configuration (Configurazione aggiuntiva)**.
   + Selezionare **Rebuild every time a code change is pushed to this repository (Ricompila ogni volta che viene inviata una modifica del codice a questo repository)** per rieseguire la compilazione ogni volta che viene inviata una modifica del codice a questo repository.
   + Seleziona **Abilita SSL non sicuro** per ignorare gli avvisi SSL durante la connessione al repository del progetto GitHub Enterprise Server.
**Nota**  
Si consiglia di utilizzare **Enable insecure SSL (Abilita SSL non sicuro)** solo nella fase di test. Non deve essere utilizzato in un ambiente di produzione.  
![\[La configurazione del repository del progetto GitHub Enterprise Server.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/github-enterprise.png)

1. In **Environment (Ambiente)**:

   Per **Environment image (Immagine ambiente)**, procedere in uno dei seguenti modi:
   + **Per utilizzare un'immagine Docker gestita da AWS CodeBuild, scegli **Immagine gestita**, quindi effettua le selezioni tra **Sistema operativo**, **Runtime (s)**, **Image e Image** version.** Se disponibile, eseguire una selezione da **Environment type (Tipo ambiente)**.
   + Per utilizzare un'altra immagine Docker, selezionare **Custom image (Immagine personalizzata)**. **Per il **tipo di ambiente**, scegli **ARM**, **Linux**, **Linux GPU** o Windows.** Se si sceglie **Other registry (Altro registro)**, fin **External registry URL (URL registro esterno)**, inserire il nome e il tag dell'immagine Docker in Docker Hub, utilizzando il formato `docker repository/docker image name`. Se scegli **Amazon ECR**, utilizza il **repository Amazon ECR e** l'immagine **Amazon ECR per scegliere l'immagine** Docker nel tuo account. AWS 
   + **Per utilizzare un'immagine Docker privata, scegli Immagine personalizzata.** **Per il **tipo di ambiente**, scegli **ARM**, **Linux**, **Linux GPU** o Windows.** Per **Image registry (Registro immagine)**, selezionare **Other registry (Altro registro)**, quindi immettere l'ARN delle credenziali per l'immagine Docker privata. Le credenziali devono essere create da Secrets Manager. Per ulteriori informazioni, consulta [Che cos'è Gestione dei segreti AWS?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) nella *Guida per l'utente di Gestione dei segreti AWS *.

1. In **Service role (Ruolo del servizio)**, procedere in uno dei seguenti modi:
   + Se non disponi di un ruolo CodeBuild di servizio, scegli **Nuovo ruolo di servizio**. In **Nome ruolo**, inserisci un nome per il nuovo ruolo.
   + Se hai un ruolo CodeBuild di servizio, scegli **Ruolo di servizio esistente**. In **Role ARN, scegli il ruolo** di servizio.
**Nota**  
Quando utilizzi la console per creare o aggiornare un progetto di build, puoi creare contemporaneamente un ruolo di CodeBuild servizio. Per impostazione predefinita, il ruolo funziona solo con tale progetto di compilazione. Se si utilizza la console per associare questo ruolo del servizio con un altro progetto di compilazione, il ruolo viene aggiornato per funzionare con l'altro progetto. Un ruolo del servizio può funzionare con un massimo di 10 progetti di compilazione.

1. Espandere **Additional configuration (Configurazione aggiuntiva)**.

   Se vuoi CodeBuild lavorare con il tuo VPC:
   + Per **VPC**, scegli l'ID VPC che utilizza. CodeBuild 
   + Per le sottoreti **VPC, scegli le sottoreti** che includono le risorse che utilizza. CodeBuild 
   + Per i **gruppi di sicurezza VPC**, scegli i gruppi di sicurezza da CodeBuild utilizzare per consentire l'accesso alle risorse in. VPCs

   Per ulteriori informazioni, consulta [Utilizzo AWS CodeBuild con Amazon Virtual Private Cloud](vpc-support.md).

1. In **Buildspec**, esegui una delle seguenti operazioni:
   + Scegliete **Usa un file buildspec per usare il file** buildspec.yml nella directory principale del codice sorgente.
   + Scegli **Inserisci comandi di compilazione per utilizzare la console per inserire i comandi di compilazione**.

   Per ulteriori informazioni, consulta [Riferimento per buildspec](build-spec-ref.md).

1. In **Artifacts (Artefatti)**, per **Type (Tipo)**, procedere in uno dei seguenti modi:
   + Se non si desidera creare artefatti di output di compilazione, scegliere **No artifacts (Nessun artefatto)**.
   + Per archiviare l'output della build in un bucket S3, scegli **Amazon S3**, quindi procedi come segue:
     + Se desideri utilizzare il tuo nome di progetto per la cartella o il file ZIP di output di compilazione, lascia vuoto il campo **Name (Nome)**. In caso contrario, digitare il nome. Per impostazione predefinita, il nome dell'artefatto è quello del progetto. Se si desidera utilizzare un nome diverso, immetterlo nella casella del nome degli artefatti. Se si desidera eseguire l'output di un file .ZIP, includere l'estensione .zip.
     + Per **Bucket name (Nome bucket)** selezionare il nome del bucket di output.
     + Se hai scelto **Insert build commands (Inserisci comandi di compilazione)** in una fase precedente di questa procedura, quindi per **Output files (File di output)**, immetti le posizioni dei file di compilazione che desideri inserire nella cartella o nel file ZIP dell'output di compilazione. Per più posizioni, separarne ognuna con una virgola (per esempio, `appspec.yml, target/my-app.jar`). Per ulteriori informazioni, consultare la descrizione di `files` in [Sintassi buildspec](build-spec-ref.md#build-spec-ref-syntax).

1. In **Cache type (Tipo di cache)**, procedere in uno dei modi seguenti:
   + Se non si desidera utilizzare una cache, scegliere **No cache (Nessuna cache)**.
   + Se desideri utilizzare una cache Amazon S3, scegli **Amazon S3** e procedi come segue:
     + Per **Bucket**, selezionare il nome del bucket S3 in cui è archiviata la cache.
     + (Facoltativo) Per il **prefisso del percorso della cache**, inserisci un prefisso del percorso Amazon S3. Il valore **Cache path prefix (Prefisso percorso cache)** è simile a un nome di directory. Consente di archiviare la cache sotto la stessa directory in un bucket. 
**Importante**  
Non aggiungere una barra finale (/) alla fine del prefisso del percorso.
   +  Se si desidera utilizzare una cache locale, selezionare **Local (Locale)**, quindi scegliere una o più modalità cache locali. 
**Nota**  
La modalità Cache di livello Docker è disponibile solo per Linux. Se la scegli, il progetto deve essere eseguito in modalità privilegiata. 

   L'utilizzo di una cache consente di risparmiare tempo di compilazione perché alcune parti riutilizzabili dell'ambiente di compilazione vengono memorizzate nella cache e utilizzate in compilazioni diverse. Per informazioni su come specificare una cache nel file di specifiche di compilazione, consulta [Sintassi buildspec](build-spec-ref.md#build-spec-ref-syntax). Per ulteriori informazioni sul caching, consulta [Creazioni di cache per migliorare le prestazioni](build-caching.md). 

1. Scegliere **Create build project (Crea progetto di compilazione)**. Nella pagina di compilazione del progetto, selezionare **Start build (Avvia compilazione)**.