

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à.

# Esempi di repository di sorgenti di terze parti per CodeBuild
<a name="sample-third-party-source"></a>

Questa sezione descrive esempi di integrazioni tra repository di sorgenti di terze parti e. CodeBuild


| Project N.E.M.O. | Description | 
| --- | --- | 
|  BitBucket pull request e esempio di filtro webhook: vedi [Esegui l'esempio «Bitbucket pull request and webhook filter» per CodeBuild](sample-bitbucket-pull-request.md)  |  Questo esempio mostra come creare una richiesta pull tramite un repository Bitbucket. Mostra anche come utilizzare un webhook Bitbucket per attivare CodeBuild per creare una compilazione di un progetto.  | 
|  GitHub Esempio di Enterprise Server: vedi [Esegui l'esempio di GitHub Enterprise Server per CodeBuild](sample-github-enterprise.md)  |  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   | 
|  GitHub pull request e esempio di filtro webhook: vedi [Esegui l'esempio di GitHub pull request e di filtro webhook per CodeBuild](sample-github-pull-request.md)  |  Questo esempio mostra come creare una richiesta pull utilizzando un repository di GitHub Enterprise Server. Viene inoltre illustrato 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   | 

# Esegui l'esempio «Bitbucket pull request and webhook filter» per CodeBuild
<a name="sample-bitbucket-pull-request"></a>

AWS CodeBuild supporta i webhook quando il repository di origine è Bitbucket. Ciò significa che per un progetto di CodeBuild compilazione il cui codice sorgente è archiviato in un repository Bitbucket, i webhook possono essere utilizzati per ricostruire il codice sorgente ogni volta che viene inserita una modifica al codice nell'archivio. Per ulteriori informazioni, consulta [Eventi webhook Bitbucket](bitbucket-webhook.md). 

Questo esempio mostra come creare una richiesta pull tramite un repository Bitbucket. Inoltre, mostra come utilizzare un webhook Bitbucket per attivare la creazione di una build di un progetto. CodeBuild 

**Nota**  
Quando si utilizzano i webhook, è possibile che un utente attivi una build inaspettata. Per mitigare questo rischio, consulta. [Procedure consigliate per l'utilizzo dei webhook](webhooks.md#webhook-best-practices)

**Topics**
+ [

## Prerequisiti
](#sample-bitbucket-pull-request-prerequisites)
+ [

## Passaggio 1: crea un progetto di compilazione con Bitbucket e abilita i webhook
](#sample-bitbucket-pull-request-create)
+ [

## Passaggio 2: attiva una build con un webhook Bitbucket
](#sample-bitbucket-pull-request-trigger)

## Prerequisiti
<a name="sample-bitbucket-pull-request-prerequisites"></a>

 Per eseguire questo esempio devi connettere il tuo AWS CodeBuild progetto al tuo account Bitbucket. 

**Nota**  
 CodeBuild ha aggiornato le sue autorizzazioni con Bitbucket. Se in precedenza hai collegato il tuo progetto a Bitbucket e ora ricevi un errore di connessione Bitbucket, devi riconnetterti per concedere l'autorizzazione a gestire i tuoi webhook. CodeBuild 

## Passaggio 1: crea un progetto di compilazione con Bitbucket e abilita i webhook
<a name="sample-bitbucket-pull-request-create"></a>

 I passaggi seguenti descrivono come creare un AWS CodeBuild progetto con Bitbucket come repository di origine e abilitare i webhook. 

1. [Apri la console su codebuild/home. AWS CodeBuild https://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. Scegliere **Create build project (Crea progetto di compilazione)**. 

1. In **Project configuration (Configuratore progetto)**:  
**Project name** (Nome progetto)  
Inserisci un nome per questo progetto di compilazione. I nomi dei progetti di build 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 (Origine)**:  
**Fornitore di origine**  
Scegli **Bitbucket**. **Segui le istruzioni per connetterti (o riconnetterti) con Bitbucket, quindi scegli Autorizza.**  
**Repository**  
Scegli **Repository nel mio account Bitbucket.**  
**Se non ti sei mai connesso in precedenza al tuo account Bitbucket, inserisci il nome utente e la password dell'app Bitbucket e seleziona Salva credenziali Bitbucket.**  
**Repository Bitbucket**  
Inserisci l'URL del tuo repository Bitbucket.

1. In **Primary source webhook events**, seleziona quanto segue. 
**Nota**  
La sezione **Primary source webhook events** è visibile solo se hai scelto **Repository nel mio account Bitbucket** nel passaggio precedente.

   1. Al momento della creazione di un progetto, 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)**. 

   1. Da **Event type (Tipo di evento)**, selezionare uno o più eventi. 

   1. Per applicare un filtro che stabilisce quando un evento avvia una compilazione, in **Start a build under these conditions (Avvia una compilazione in queste condizioni)** aggiungere uno o più filtri facoltativi. 

   1. Per applicare un filtro che stabilisce quando un evento non avvia una compilazione, in **Don't start a build under these conditions (Non avviare una compilazione in queste condizioni)** aggiungere uno o più filtri facoltativi. 

   1. Scegli **Aggiungi gruppo di filtri per aggiungere un altro gruppo** di filtri, se necessario. 

   Per ulteriori informazioni sui tipi di eventi e sui filtri del webhook di Bitbucket, consulta. [Eventi webhook Bitbucket](bitbucket-webhook.md)

1. In **Environment (Ambiente)**:  
**Immagine dell'ambiente**  
Seleziona una delle seguenti opzioni:    
Per utilizzare un'immagine Docker gestita da AWS CodeBuild:  
Scegli **Immagine gestita**, quindi effettua le selezioni tra **Sistema operativo**, **Runtime (s)**, **Immagine e Versione dell'****immagine**. Se disponibile, eseguire una selezione da **Environment type (Tipo ambiente)**.  
Per usare un'altra immagine Docker:  
Scegli **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 [What](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) Is? Gestione dei segreti AWS nella *Guida Gestione dei segreti AWS per l'utente*.  
**Ruolo di servizio**  
Seleziona una delle seguenti opzioni:  
   + 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.
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. 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)**:  
**Tipo**  
Seleziona una delle seguenti opzioni:  
   + 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).  
**Configurazione aggiuntiva**  
Espandere **Additional configuration (Configurazione aggiuntiva)** e impostare le opzioni come opportuno.

1. Scegliere **Create build project (Crea progetto di compilazione)**. Nella pagina **Review (Verifica)**, selezionare **Start build (Avvia compilazione)** per eseguire la compilazione.

## Passaggio 2: attiva una build con un webhook Bitbucket
<a name="sample-bitbucket-pull-request-trigger"></a>

Per un progetto che utilizza webhook Bitbucket, AWS CodeBuild crea una build quando il repository Bitbucket rileva una modifica nel codice sorgente. 

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

1. Nel riquadro di navigazione, selezionare **Build projects (Compilare progetti)**, quindi selezionare un progetto associato a un repository di Bitbucket con webhook. Per informazioni sulla creazione di un progetto webhook Bitbucket, consulta. [Passaggio 1: crea un progetto di compilazione con Bitbucket e abilita i webhook](#sample-bitbucket-pull-request-create) 

1. Apportare modifiche al codice nel repository Bitbucket del progetto. 

1. Creare una richiesta pull nel repository Bitbucket. Per ulteriori informazioni, consultare l'articolo relativo alla [creazione di una richiesta pull](https://www.atlassian.com/git/tutorials/making-a-pull-request). 

1. Nella pagina dei webhook Bitbucket, selezionare **View request (Visualizzare richiesta)** per visualizzare un elenco di eventi recenti. 

1. Scegli **Visualizza dettagli per visualizzare i** dettagli sulla risposta restituita da. CodeBuild Potrebbe essere simile al seguente: 

   ```
   "response":"Webhook received and build started: https://us-east-1.console.aws.amazon.com/codebuild/home..."
   "statusCode":200
   ```

1. Navigare alla pagina della richiesta pull Bitbucket per visualizzare lo stato della compilazione. 

# 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)**.

# Esegui l'esempio di GitHub pull request e di filtro webhook per CodeBuild
<a name="sample-github-pull-request"></a>

AWS CodeBuild supporta i webhook quando il repository di origine è. GitHub Ciò significa che per un progetto di CodeBuild compilazione il cui codice sorgente è archiviato in un GitHub repository, i webhook possono essere utilizzati per ricostruire il codice sorgente ogni volta che viene inserita una modifica al codice nel repository. [Per alcuni esempi, consulta Samples. CodeBuild AWS CodeBuild](https://github.com/aws-samples/aws-codebuild-samples)

**Nota**  
Quando si utilizzano i webhook, è possibile che un utente attivi una build inaspettata. Per mitigare questo rischio, vedi. [Procedure consigliate per l'utilizzo dei webhook](webhooks.md#webhook-best-practices)

**Topics**
+ [

## Fase 1: Creare un progetto di compilazione con GitHub e abilitare i webhook
](#sample-github-pull-request-running)
+ [

## Passaggio 2: verifica che i webhook siano abilitati
](#verification-checks)

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

1. Apri la AWS CodeBuild console su [https://console.aws.amazon.com/codesuite/codebuild/home](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. Scegliere **Create build project (Crea progetto di compilazione)**. 

1. In **Project configuration (Configuratore progetto)**:  
**Project name** (Nome progetto)  
Inserisci un nome per questo progetto di compilazione. I nomi dei progetti di build 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 (Origine)**:  
**Fornitore di origine**  
Scegli **GitHub**. Segui le istruzioni per connetterti (o riconnetterti) con GitHub , quindi scegli **Autorizza**.  
**Repository**  
Scegli **Repository nel mio account**. GitHub  
**GitHub deposito**  
Inserisci l'URL del tuo GitHub repository.

1. In **Primary source webhook events**, seleziona quanto segue.
**Nota**  
La sezione **Primary source webhook events** è visibile solo se hai scelto **Repository nel mio GitHub account nel passaggio** precedente.

   1. Al momento della creazione di un progetto, 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)**. 

   1. Da **Event type (Tipo di evento)**, selezionare uno o più eventi. 

   1. Per applicare un filtro che stabilisce quando un evento avvia una compilazione, in **Start a build under these conditions (Avvia una compilazione in queste condizioni)** aggiungere uno o più filtri facoltativi. 

   1. Per applicare un filtro che stabilisce quando un evento non avvia una compilazione, in **Don't start a build under these conditions (Non avviare una compilazione in queste condizioni)** aggiungere uno o più filtri facoltativi. 

   1. Scegli **Aggiungi gruppo di filtri** per aggiungere un altro gruppo di filtri, se necessario. 

   Per ulteriori informazioni sui tipi di eventi e sui filtri dei GitHub webhook, consulta[GitHub eventi webhook](github-webhook.md).

1. In **Environment (Ambiente)**:  
**Immagine dell'ambiente**  
Seleziona una delle seguenti opzioni:    
Per utilizzare un'immagine Docker gestita da AWS CodeBuild:  
Scegli **Immagine gestita**, quindi effettua le selezioni tra **Sistema operativo**, **Runtime (s)**, **Immagine e Versione dell'****immagine**. Se disponibile, eseguire una selezione da **Environment type (Tipo ambiente)**.  
Per usare un'altra immagine Docker:  
Scegli **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 [What](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) Is? Gestione dei segreti AWS nella *Guida Gestione dei segreti AWS per l'utente*.  
**Ruolo di servizio**  
Seleziona una delle seguenti opzioni:  
   + 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.
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. 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)**:  
**Tipo**  
Seleziona una delle seguenti opzioni:  
   + 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).  
**Configurazione aggiuntiva**  
Espandere **Additional configuration (Configurazione aggiuntiva)** e impostare le opzioni come opportuno.

1. Scegliere **Create build project (Crea progetto di compilazione)**. Nella pagina **Review (Verifica)**, selezionare **Start build (Avvia compilazione)** per eseguire la compilazione.

## Passaggio 2: verifica che i webhook siano abilitati
<a name="verification-checks"></a>

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

1. Nel riquadro di navigazione, scegliere **Build projects (Progetti di compilazione)**.

1. Esegui una delle seguenti operazioni:
   + Selezionare il collegamento del progetto di compilazione con i webhook da verificare, quindi selezionare **Build details (Dettagli compilazione)**.
   + **Scegli il pulsante accanto al progetto di compilazione con i webhook che desideri verificare, scegli **Visualizza dettagli, quindi scegli la scheda Dettagli** della build.**

1. In **Primary source webhook events**, scegli il link URL **Webhook**. 

1. **Nel tuo GitHub repository, nella pagina **Impostazioni**, sotto **Webhook**, verifica che siano selezionate le **Pull Requests** e Push.**

1. Nelle impostazioni del tuo GitHub profilo, in **Impostazioni personali**, **Applicazioni**, ** OAuthApp autorizzate**, dovresti vedere che l'applicazione è stata autorizzata ad accedere alla AWS regione selezionata.

# Tutorial: firma del codice Apple con Fastlane nell' CodeBuild utilizzo di S3 per l'archiviazione dei certificati
<a name="sample-fastlane"></a>

[fastlane](https://docs.fastlane.tools/) è un popolare strumento di automazione open source per automatizzare le distribuzioni e le versioni beta per le tue app iOS e Android. Gestisce tutte le attività noiose, come la generazione di schermate, la firma del codice e il rilascio dell'applicazione.

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

Per completare questo tutorial, devi prima aver impostato quanto segue:
+ Un Account AWS
+ Un [account Apple Developer](https://developer.apple.com/)
+ Un bucket S3 per l'archiviazione dei certificati
+ fastlane installato nel tuo progetto - [Guida](https://docs.fastlane.tools/getting-started/ios/setup/) all'installazione di fastlane

## Passaggio 1: configura Fastlane Match con S3 sul tuo computer locale
<a name="sample-fastlane-S3"></a>

[Fastlane Match](https://docs.fastlane.tools/actions/match/) è uno degli [strumenti di Fastlane](https://fastlane.tools/) e consente una configurazione senza interruzioni per la firma del codice sia nell'ambiente di sviluppo locale che in quello successivo. CodeBuild Fastlane Match archivia tutti i certificati di firma del codice e i profili di provisioning in un repository/S3 Bucket/Google cloud storage Git e scarica e installa i certificati e i profili necessari quando richiesto.

In questa configurazione di esempio, configurerai e utilizzerai un bucket Amazon S3 per lo storage. 

****

1. Inizializza match nel tuo progetto:

   ```
   fastlane match init
   ```

1. Quando richiesto, scegli S3 come modalità di archiviazione.

1. Aggiorna il tuo `*Matchfile*` per usare S3:

   ```
   storage_mode("s3")
      s3_bucket("your-s3-bucket-name")
      s3_region("your-aws-region")
      type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
   ```

## Passaggio 2: configura il tuo Fastfile
<a name="sample-fastlane-S3-fastfile"></a>

Crea o aggiorna il tuo `Fastfile` con la seguente corsia.

Sì CodeBuild, Fastlane Match dovrà essere eseguito ogni volta che crei e firmi la tua app. Il modo più semplice per farlo è aggiungere l'`match`azione alla corsia in cui viene creata l'app.

```
default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end
  
  desc "Build and sign the app"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "YourScheme",
      export_method: "app-store"
    )
  end
end
```

**Nota**  
Assicurati di aggiungerla `setup_ci` alla `before_all ` sezione in `Fastfile` affinché l'azione della partita funzioni correttamente. Ciò garantisce che venga utilizzato un portachiavi Fastlane temporaneo con le autorizzazioni appropriate. Senza utilizzarlo, è possibile che si verifichino errori di compilazione o risultati incoerenti. 



## Passaggio 3: Esegui il `fastlane match` comando per generare i rispettivi certificati e profili
<a name="sample-fastlane-S3-certificates"></a>

Il comando fastlane match per il tipo specificato (ad esempio development, appstore, adhoc, enterprise) genererà il certificato e il profilo se non sono disponibili nell'archivio remoto. I certificati e i profili verranno archiviati in S3 da fastlane.

```
bundle exec fastlane match appstore
```

L'esecuzione del comando sarà interattiva e fastlane chiederà di impostare la passphrase per decrittografare i certificati.

## Fase 4: Crea il file dell'applicazione per il tuo progetto
<a name="sample-fastlane-S3-appfile"></a>

Create o aggiungete il file dell'applicazione appropriato per il vostro progetto.

****

1. Crea o aggiungi [Gymfile, Appfile](http://docs.fastlane.tools/actions/gym/#gymfile)[, Snapfile](http://docs.fastlane.tools/advanced/Appfile/)[, [Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile)](http://docs.fastlane.tools/actions/snapshot/#snapfile) in base ai requisiti di costruzione del tuo progetto.

1. Effettua le modifiche nel tuo repository remoto

## Fase 5: Creare variabili di ambiente in Secrets Manager
<a name="sample-fastlane-S3-secrets"></a>

Crea due segreti per memorizzare il cookie di sessione fastlane e la passphrase corrispondente. Per ulteriori informazioni sulla creazione di segreti in Secrets Manager, consulta [Creare un Gestione dei segreti AWS segreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

****

1. Accedi al cookie di sessione fastlane come segue.

   1. Chiave segreta - `FASTLANE_SESSION`

   1. Valore segreto: cookie di sessione generato dall'esecuzione del seguente comando sul computer locale.
**Nota**  
Questo valore è disponibile dopo l'autenticazione in un file locale:`~/.fastlane/spaceship/my_appleid_username/cookie`.

      ```
      fastlane spaceauth -u <apple account>
      ```

1. Password Fastlane Match - Per consentire a Fastlane Match di decrittografare i certificati e i profili archiviati nel bucket S3, è necessario aggiungere la passphrase di crittografia configurata nella fase di configurazione di Match alle variabili di ambiente del progetto. CodeBuild

   1. Chiave segreta - `MATCH_PASSWORD`

   1. Valore segreto -*<match passphrase to decrypt certificates>*. La passphrase viene impostata durante la generazione dei certificati nel passaggio 3.

**Nota**  
Durante la creazione dei segreti di cui sopra in Secrets Manager, ricordati di assegnare un nome segreto con il seguente prefisso: `/CodeBuild/`

## Fase 6: Creare una flotta di elaborazione
<a name="sample-fastlane-S3-fleet"></a>

Crea la flotta di elaborazione per il tuo progetto.

****

1. Nella console, vai a CodeBuild e crea una nuova flotta di elaborazione.

1. Scegli «macOS» come sistema operativo e seleziona un tipo di calcolo e un'immagine appropriati.

## Passaggio 7: Crea un progetto in CodeBuild
<a name="sample-fastlane-S3-project"></a>

Crea il tuo progetto in CodeBuild.



****

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

1. Creare un progetto di compilazione. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console) e [Esecuzione di una compilazione (console)](run-build-console.md).

1. Configura il tuo provider di origine (ad esempio,). GitHub CodeCommit Questo è il repository dei sorgenti del progetto iOS e non l'archivio dei certificati.

1.  In **Environment (Ambiente)**: 
   + Scegli Capacità **riservata.**
   + Per **Fleet**, seleziona la flotta creata sopra.
   + Fornisci il nome del ruolo di servizio che CodeBuild creerai per te.
   + Fornisci le seguenti variabili di ambiente.
     + Nome:`MATCH_PASSWORD`, Valore:*<secrets arn>*, Tipo: Secrets Manager (Secrets ARN creato nel passaggio 5 per MATCH\$1PASSWORD)
     + Nome:`FASTLANE_SESSION`, Valore:*<secrets arn>*, Tipo: Secrets Manager (Secrets ARN creato nel passaggio 5 per FASTLANE\$1SESSION)

1. In **Buildspec**, aggiungi quanto segue:

   ```
   version: 0.2
   
   phases:
     install:
       commands:
         - gem install bundler
         - bundle install
     build:
       commands:
         - echo "Building and signing the app..."
         - bundle exec fastlane build
     post_build:
       commands:
         - echo "Build completed on date"
   
   artifacts:
     files:
       - '*/.ipa'
     name: app-$(date +%Y-%m-%d)
   ```

## Fase 8: Configurazione del ruolo IAM
<a name="sample-fastlane-S3-role"></a>

Una volta creato il progetto, assicurati che il ruolo di servizio del CodeBuild progetto disponga delle autorizzazioni per accedere al bucket S3 contenente i certificati. Aggiungi la seguente politica al ruolo:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::your-s3-bucket-name/*"
        }
    ]
}
```

------

## Passaggio 9: Esegui la build
<a name="sample-fastlane-S3-run"></a>

Eseguire la compilazione. Puoi controllare lo stato della build e accedere. CodeBuild

Una volta completato il lavoro, potrai visualizzare il registro del lavoro.

## Risoluzione dei problemi
<a name="sample-fastlane-S3-troubleshooting"></a>
+ Se riscontri problemi con il recupero dei certificati, assicurati che le autorizzazioni IAM siano configurate correttamente per l'accesso a S3.
+ Se riscontri problemi con la decrittografia dei certificati, assicurati di impostare la passphrase corretta nella variabile di ambiente MATCH\$1PASSWORD.
+ Per problemi di firma del codice, verifica che il tuo account Apple Developer disponga dei certificati e dei profili necessari e che l'identificatore del pacchetto nel tuo progetto Xcode corrisponda a quello nel tuo profilo di provisioning.

## Considerazioni relative alla sicurezza
<a name="sample-fastlane-considerations"></a>

Di seguito sono riportate le considerazioni sulla sicurezza relative a questo tutorial.
+ Assicurati che il tuo bucket S3 abbia le impostazioni di sicurezza appropriate, inclusa la crittografia a riposo. In particolare, assicurati che il bucket non abbia accesso pubblico e limita l'accesso solo CodeBuild al sistema che deve avere accesso.
+ Prendi in considerazione l'utilizzo Gestione dei segreti AWS per archiviare informazioni sensibili come MATCH\$1PASSWORD e FASTLANE\$1SESSION.

Questo esempio fornisce una configurazione per la firma del codice iOS con Fastlane CodeBuild utilizzando Amazon S3 per l'archiviazione dei certificati. Potrebbe essere necessario modificare alcuni passaggi in base ai requisiti e CodeBuild all'ambiente specifici del progetto. Questo approccio sfrutta i AWS servizi per una maggiore sicurezza e integrazione all'interno dell' AWS ecosistema.

# Tutorial: utilizzo della firma del codice Apple con Fastlane GitHub per CodeBuild l'archiviazione dei certificati
<a name="sample-fastlane-github"></a>

[fastlane](https://docs.fastlane.tools/) è un popolare strumento di automazione open source per automatizzare le distribuzioni e le versioni beta per le tue app iOS e Android. Gestisce tutte le attività noiose, come la generazione di schermate, la firma del codice e il rilascio dell'applicazione.

Questo esempio dimostra come configurare la firma del codice Apple utilizzando Fastlane in un CodeBuild progetto in esecuzione su Mac Fleet, GitHub come spazio di archiviazione per certificati e profili di provisioning.

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

Per completare questo tutorial, devi prima aver impostato quanto segue:
+ Un Account AWS
+ Un [account Apple Developer](https://developer.apple.com/)
+ Un GitHub archivio privato per l'archiviazione dei certificati
+ fastlane installato nel tuo progetto - [Guida](https://docs.fastlane.tools/getting-started/ios/setup/) all'installazione di fastlane

## Passaggio 1: configura Fastlane Match con GitHub sul tuo computer locale
<a name="sample-fastlane-github-certificates"></a>

[Fastlane Match](https://docs.fastlane.tools/actions/match/) è uno degli [strumenti di Fastlane](https://fastlane.tools/) e consente una configurazione senza interruzioni per la firma del codice sia nell'ambiente di sviluppo locale che in quello successivo. CodeBuild Fastlane Match archivia tutti i certificati di firma del codice e i profili di provisioning in un repository/S3 Bucket/Google cloud storage Git e scarica e installa i certificati e i profili necessari quando richiesto.

In questa configurazione di esempio, configureremo e utilizzeremo un repository Git per l'archiviazione. 

****

1. Inizializza match nel tuo progetto:

   ```
   fastlane match init
   ```

1. Quando richiesto, scegli GitHub come modalità di archiviazione.

1. Aggiorna il tuo `*Matchfile*` per usare: GitHub

   ```
   git_url("https://github.com/your-username/your-certificate-repo.git")
   storage_mode("git")
   type("development") # The default type, can be: appstore, adhoc, enterprise or development
   ```

**Nota**  
Assicurati di inserire l'URL HTTPS per il tuo repository Git per l'autenticazione e la clonazione con successo di fastlane. Altrimenti, potresti visualizzare un errore di autenticazione quando tenti di utilizzare match.

## Passaggio 2: configura il tuo Fastfile
<a name="sample-fastlane-github-fastfile"></a>

Crea o aggiorna il tuo `Fastfile` con la seguente corsia.

Sì CodeBuild, Fastlane Match dovrà essere eseguito ogni volta che crei e firmi la tua app. Il modo più semplice per farlo è aggiungere l'`match`azione alla corsia in cui viene creata l'app.

```
default_platform(:ios)

platform :ios do
  before_all do
    setup_ci
  end
  
  desc "Build and sign the app"
  lane :build do
    match(type: "appstore", readonly: true)
    gym(
      scheme: "YourScheme",
      export_method: "app-store"
    )
  end
end
```

**Nota**  
Assicurati di aggiungerla `setup_ci` alla `before_all ` sezione in `Fastfile` affinché l'azione della partita funzioni correttamente. Ciò garantisce che venga utilizzato un portachiavi Fastlane temporaneo con le autorizzazioni appropriate. Senza utilizzarlo, è possibile che si verifichino errori di compilazione o risultati incoerenti. 

## Passaggio 3: Esegui il `fastlane match` comando per generare i rispettivi certificati e profili
<a name="sample-fastlane-github-certificates"></a>

Il comando fastlane match per il tipo specificato (ad esempio development, appstore, adhoc, enterprise) genererà il certificato e il profilo se non sono disponibili nell'archivio remoto. I certificati e i profili verranno archiviati da fastlane. GitHub 

```
bundle exec fastlane match appstore
```

L'esecuzione del comando sarà interattiva e fastlane chiederà di impostare la passphrase per decrittografare i certificati.

## Fase 4: Crea il file dell'applicazione per il tuo progetto
<a name="sample-fastlane-github-appfile"></a>

Create o aggiungete il file dell'applicazione appropriato per il vostro progetto.

****

1. Crea o aggiungi [Gymfile, Appfile](http://docs.fastlane.tools/actions/gym/#gymfile)[, Snapfile](http://docs.fastlane.tools/advanced/Appfile/)[, [Deliverfile](http://docs.fastlane.tools/actions/deliver/#editing-the-deliverfile)](http://docs.fastlane.tools/actions/snapshot/#snapfile) in base ai requisiti di costruzione del tuo progetto.

1. Effettua le modifiche nel tuo repository remoto.

## Fase 5: Creare variabili di ambiente in Secrets Manager
<a name="sample-fastlane-github-secrets"></a>

Crea tre segreti per memorizzare il cookie di sessione fastlane e la passphrase corrispondente. Per ulteriori informazioni sulla creazione di segreti in Secrets Manager, consulta [Creare un Gestione dei segreti AWS segreto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html).

****

1. Accedi al cookie di sessione fastlane come segue.

   1. Chiave segreta - `FASTLANE_SESSION`

   1. Valore segreto: cookie di sessione generato dall'esecuzione del seguente comando sul computer locale.
**Nota**  
Questo valore è disponibile dopo l'autenticazione in un file locale:`~/.fastlane/spaceship/my_appleid_username/cookie`.

      ```
      fastlane spaceauth -u <Apple_account>
      ```

1. Password Fastlane Match - Per consentire a Fastlane Match di decrittografare i certificati e i profili archiviati nel repository Git, è necessario aggiungere la passphrase di crittografia configurata nella fase di configurazione di Match alle variabili di ambiente del progetto. CodeBuild 

   1. Chiave segreta - `MATCH_PASSWORD`

   1. Valore segreto -`<match passphrase to decrypt certificates>`. La passphrase viene impostata durante la generazione dei certificati nel passaggio 3.

1. *Fastlane`MATCH_GIT_BASIC_AUTHORIZATION`: imposta un'autorizzazione di base per la partita:*

   1. Chiave segreta: 

      `MATCH_GIT_BASIC_AUTHORIZATION`

   1. Valore segreto: il valore deve essere una stringa codificata in base 64 contenente il nome utente e il token di accesso personale (PAT) nel formato. `username:password` Puoi generarlo usando il seguente comando:

      ```
      echo -n your_github_username:your_personal_access_token | base64
      ```

      Puoi generare il tuo PAT sulla GitHub console in Il mio **profilo > Impostazioni > Impostazioni degli sviluppatori > Token di accesso personale**. [Per ulteriori informazioni, consulta la seguente guida: -. https://docs.github.com/en/ authentication/keeping-your-account-and-data-secure/managing your-personal-access-tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)

**Nota**  
Durante la creazione dei segreti di cui sopra in Secrets Manager, ricordati di assegnare un nome segreto con il seguente prefisso: `/CodeBuild/`

## Fase 6: Creare una flotta di elaborazione
<a name="sample-fastlane-github-fleet"></a>

Crea la flotta di elaborazione per il tuo progetto.

****

1. Nella console, vai a CodeBuild e crea una nuova flotta di elaborazione.

1. Scegli `macOS` come sistema operativo e seleziona il tipo di elaborazione e l'immagine appropriati.

## Fase 7: Creare un progetto in CodeBuild
<a name="sample-fastlane-github-project"></a>

Crea il tuo progetto in CodeBuild.

****

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

1. Creare un progetto di compilazione. Per informazioni, consulta [Creare un progetto di compilazione (console)](create-project.md#create-project-console) e [Esecuzione di una compilazione (console)](run-build-console.md).

1. Configura il tuo provider di origine (ad esempio,). GitHub CodeCommit Questo è il repository dei sorgenti del progetto iOS e non l'archivio dei certificati.

1.  In **Environment (Ambiente)**: 
   + Scegli Capacità **riservata.**
   + Per **Fleet**, seleziona la flotta creata sopra.
   + Fornisci il nome del ruolo di servizio che CodeBuild creerai per te.
   + Fornisci le seguenti variabili di ambiente.
     + Nome:`MATCH_PASSWORD`, Valore:*<secrets arn>*, Tipo: Secrets Manager (Secrets ARN creato nel passaggio 5 per MATCH\$1PASSWORD)
     + Nome:`FASTLANE_SESSION`, Valore:*<secrets arn>*, Tipo: Secrets Manager (Secrets ARN creato nel passaggio 5 per FASTLANE\$1SESSION)
     + Nome:`MATCH_GIT_BASIC_AUTHORIZATION`, Valore:*<secrets ARN>*, Tipo: Secrets Manager Secrets ARN (creato nel passaggio 5 per) `MATCH_GIT_BASIC_AUTHORIZATION`

1. In **Buildspec**, aggiungi quanto segue:

   ```
   version: 0.2
   
   phases:
     install:
       commands:
         - gem install bundler
         - bundle install
     build:
       commands:
         - echo "Building and signing the app..."
         - bundle exec fastlane build
     post_build:
       commands:
         - echo "Build completed on date"
   
   artifacts:
     files:
       - '*/.ipa'
     name: app-$(date +%Y-%m-%d)
   ```

## Passaggio 8: esegui la build
<a name="sample-fastlane-github-run"></a>

Eseguire la compilazione. Puoi controllare lo stato della build e accedere. CodeBuild

Una volta completato il lavoro, potrai visualizzare il registro del lavoro.

## Risoluzione dei problemi
<a name="sample-fastlane-github-troubleshooting"></a>
+ Se riscontri problemi di accesso al GitHub repository, ricontrolla il tuo token di accesso personale e la variabile di ambiente MATCH\$1GIT\$1BASIC\$1AUTHORIZATION.
+ Se riscontri problemi con la decrittografia dei certificati, assicurati di impostare la passphrase corretta nella variabile di ambiente MATCH\$1PASSWORD.
+ Per problemi di firma del codice, verifica che il tuo account Apple Developer disponga dei certificati e dei profili necessari e che l'identificatore del pacchetto nel tuo progetto Xcode corrisponda a quello nel tuo profilo di provisioning.

## Considerazioni relative alla sicurezza
<a name="sample-fastlane-github-considerations"></a>

Di seguito sono riportate le considerazioni sulla sicurezza relative a questo tutorial.
+ Mantieni privato il tuo GitHub archivio di certificati e verifica regolarmente l'accesso.
+ Prendi in considerazione l'utilizzo Gestione dei segreti AWS per l'archiviazione di informazioni sensibili come MATCH\$1PASSWORD e FASTLANE\$1SESSION.

Questo esempio fornisce una configurazione per la firma del codice iOS con Fastlane da CodeBuild utilizzare GitHub per l'archiviazione dei certificati. Potrebbe essere necessario modificare alcuni passaggi in base ai requisiti e all' CodeBuild ambiente specifici del progetto. Questo approccio sfrutta i AWS servizi per una maggiore sicurezza e integrazione all'interno dell' AWS ecosistema.