Tutorial: crea una pipeline con cui creare e testare la tua app Android AWS Device Farm - AWS CodePipeline

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

Tutorial: crea una pipeline con cui creare e testare la tua app Android AWS Device Farm

Puoi utilizzarla AWS CodePipeline per configurare un flusso di integrazione continuo in cui la tua app viene creata e testata ogni volta che viene inviato un commit. Questo tutorial mostra come creare e configurare una pipeline per creare e testare la tua app Android con codice sorgente in un GitHub repository. La pipeline rileva l'arrivo di un nuovo GitHub commit e quindi la utilizza CodeBuildper creare l'app e Device Farm per testarlo.

Importante

Come parte della creazione di una pipeline nella console, per gli artefatti verrà utilizzato un bucket di artefatti S3. CodePipeline (Questo è diverso dal bucket utilizzato per un'azione sorgente S3.) Se il bucket di artefatti S3 si trova in un account diverso da quello della pipeline, assicurati che il bucket di artefatti S3 sia di proprietà di utenti sicuri e affidabili. Account AWS

Importante

Molte delle azioni che aggiungi alla pipeline in questa procedura coinvolgono AWS risorse che devi creare prima di creare la pipeline. AWS le risorse per le tue azioni di origine devono sempre essere create nella stessa AWS regione in cui crei la pipeline. Ad esempio, se crei la pipeline nella regione Stati Uniti orientali (Ohio), il tuo CodeCommit repository deve trovarsi nella regione Stati Uniti orientali (Ohio).

Puoi aggiungere azioni interregionali quando crei la pipeline. AWS le risorse per le azioni interregionali devono trovarsi nella stessa AWS regione in cui intendi eseguire l'azione. Per ulteriori informazioni, consulta Aggiungere un'azione interregionale in CodePipeline.

Puoi provarlo utilizzando l'app Android esistente e le definizioni di test oppure puoi utilizzare l'app di esempio e le definizioni di test fornite da Device Farm.

Nota

Prima di iniziare

  1. Accedi alla AWS Device Farm console e scegli Crea un nuovo progetto.

  2. Scegliere il progetto. Nel browser, copiare l'URL del nuovo progetto. L'URL contiene l'ID del progetto.

  3. Copiare e conservare questo ID del progetto. Viene utilizzato quando si crea la pipeline in CodePipeline.

    Ecco un URL di esempio per un progetto. Per estrarre l'ID del progetto, copiare il valore dopo projects/. In questo esempio l'ID del prodotto è eec4905f-98f8-40aa-9afc-4c1cfexample.

    https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs

Configura CodePipeline per utilizzare i test Device Farm

  1. Aggiungi e esegui il commit di un file chiamato buildspec.ymlnella radice del codice dell'app e invialo al tuo repository. CodeBuild utilizza questo file per eseguire comandi e accedere agli artefatti necessari per creare l'app.

    version: 0.2 phases: build: commands: - chmod +x ./gradlew - ./gradlew assembleDebug artifacts: files: - './android/app/build/outputs/**/*.apk' discard-paths: yes
  2. (Facoltativo) Se utilizzi Calabash o Appium per testare la tua applicazione, aggiungi il file di definizione del test al repository. In una fase successiva, puoi configurare Device Farm per utilizzare le definizioni per eseguire la tua suite di test.

    Se utilizzi i test integrati di Device Farm, puoi saltare questo passaggio.

  3. Per creare la pipeline e aggiungere una fase di origine, procedi nel seguente modo:

    1. Accedi a AWS Management Console e apri la CodePipeline console all'indirizzo https://console.aws.amazon.com/codepipeline/.

    2. Nella pagina Welcome (Benvenuto), pagina Getting started (Nozioni di base) o pagina Pipelines (Pipeline), scegliere Create pipeline (Crea pipeline).

    3. Nella pagina Passaggio 1: Scegli l'opzione di creazione, in Opzioni di creazione, scegli l'opzione Crea pipeline personalizzata. Scegli Next (Successivo).

    4. Nella pagina Passaggio 2: Scegli le impostazioni della pipeline, in Nome pipeline, inserisci il nome della pipeline.

    5. CodePipeline fornisce condotte di tipo V1 e V2, che differiscono per caratteristiche e prezzo. Il tipo V2 è l'unico tipo che puoi scegliere nella console. Per ulteriori informazioni, consulta i tipi di pipeline. Per informazioni sui prezzi di CodePipeline, consulta la sezione Prezzi.

    6. Alla voce Service role (Ruolo del servizio), lasciare selezionato New service role (Nuovo ruolo del servizio) e lasciare immutata la voce Role name (Nome ruolo). È anche possibile scegliere di utilizzare un ruolo di servizio esistente, se disponibile.

      Nota

      Se utilizzi un ruolo CodePipeline di servizio creato prima di luglio 2018, devi aggiungere le autorizzazioni per Device Farm. A tale scopo, apri la console IAM, trova il ruolo, quindi aggiungi le seguenti autorizzazioni alla policy del ruolo. Per ulteriori informazioni, consulta Aggiunta delle autorizzazioni dal ruolo di servizio CodePipeline.

      { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "*" }
    7. Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).

    8. Nella pagina Step 3: Aggiungi la fase di origine, in Source provider, scegli GitHub (tramite GitHub app).

    9. In Connessione, scegli una connessione esistente o creane una nuova. Per creare o gestire una connessione per l'azione GitHub sorgente, consultaGitHub connessioni.

    10. In Repository, scegliere il repository di origine.

    11. In Branch (Ramificazione), scegliere la ramificazione che si desidera utilizzare.

    12. Lascia le impostazioni predefinite rimanenti per l'azione di origine. Scegli Next (Successivo).

  4. Nel passaggio 4: Aggiungere una fase di compilazione, aggiungere una fase di compilazione:

    1. In Build provider (Provider compilazione), scegli AWS CodeBuild. Consenti a Region (Regione) di preimpostarsi sulla regione della pipeline.

    2. Seleziona Crea progetto.

    3. In Project name (Nome progetto) immettere un nome per questo progetto di compilazione.

    4. In Environment image (Immagine ambiente), scegli Managed image (Immagine gestita). In Operating system (Sistema operativo), seleziona Ubuntu.

    5. In Runtime, seleziona Standard. Per Image, scegliete: 5.0aws/codebuild/standard.

      CodeBuild utilizza questa immagine del sistema operativo, su cui è installato Android Studio, per creare l'app.

    6. Per Ruolo di servizio, scegli il ruolo CodeBuild di servizio esistente o creane uno nuovo.

    7. Per Build specifications (Compila specifiche), scegli Use a buildspec file (Usa un file buildspec).

    8. Scegli Continua a CodePipeline. Questo ritorna alla CodePipeline console e crea un CodeBuild progetto che utilizza il file buildspec.yml nel tuo repository per la configurazione. Il progetto di compilazione utilizza un ruolo di servizio per gestire le Servizio AWS autorizzazioni. Questa operazione potrebbe richiedere un paio di minuti.

    9. Scegli Next (Successivo).

  5. Nel passaggio 5: aggiungi la fase di test, scegli Ignora fase di test, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora.

    Scegli Next (Successivo).

  6. Nella pagina Passaggio 6: Aggiungi fase di distribuzione, scegli Ignora fase di distribuzione, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora. Scegli Next (Successivo).

  7. Nel Passaggio 7: Revisione, scegli Crea pipeline. Dovresti visualizzare uno schema che mostra le fasi di origine e compilazione.

  8. Aggiungi un'azione di test di Device Farm alla tua pipeline:

    1. In alto a destra, scegli Edit (Modifica).

    2. In fondo al diagramma, scegliere + Add stage (+ Aggiungi fase) In Nome fase immetti un nome, ad esempio Test.

    3. Scegliere + Add action group (+ Aggiungi gruppo di operazioni).

    4. Alla voce Action name (Nome operazione), inserire un nome.

    5. In Action provider, scegli AWS Device Farm. Consenti a Region (Regione) di preimpostarsi sulla regione della pipeline.

    6. In Input artifacts (Artefatti di input), scegli l'artefatto di input che corrisponde all'artefatto di output della fase precedente alla fase di test, ad esempio BuildArtifact.

      Nella AWS CodePipeline console, puoi trovare il nome dell'elemento di output per ogni fase passando il mouse sull'icona delle informazioni nel diagramma della pipeline. Se la tua pipeline testa la tua app direttamente dalla fase Source, scegli. SourceArtifact Se la pipeline include una fase di creazione, scegli. BuildArtifact

    7. Nel ProjectId, inserisci l'ID del tuo progetto Device Farm. Utilizzare la procedura all'inizio di questo tutorial per recuperare l'ID del progetto.

    8. In DevicePoolArn, inserisci l'ARN per il pool di dispositivi. Per ottenere il pool di dispositivi disponibile ARNs per il progetto, incluso l'ARN per i dispositivi principali, utilizza la AWS CLI per immettere il seguente comando:

      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
    9. In AppType, inserisci Android.

      Di seguito è riportato un elenco di valori validi per AppType:

      • iOS

      • Android

      • App

    10. In App, inserisci il percorso del pacchetto dell'applicazione compilata. Il percorso è relativo alla cartella principale dell'artefatto di input della fase di sviluppo. Di solito, questo percorso è simile a app-release.apk.

    11. In TestType, inserisci il tipo di test, quindi in Test, inserisci il percorso del file di definizione del test. Il percorso è relativo alla cartella principale dell'artefatto di input del test.

      Di seguito è riportato un elenco di valori validi per TestType:

      • APPIUM_JAVA_JUNIT

      • APPIUM_JAVA_TESTNG

      • NODO_APPIUM

      • APPIUM_RUBY

      • APPIUM_PYTHON

      • APPIUM_WEB_JAVA_JUNIT

      • APPIUM_WEB_JAVA_TESTNG

      • NODO APPIUM_WEB

      • APPIUM_WEB_RUBY

      • APPIUM_WEB_PYTHON

      • BUILTIN_FUZZ

      • INSTRUMENTATION

      • XCTEST

      • XCTEST_UI

      Nota

      I nodi di ambiente personalizzati non sono supportati.

    12. Nei campi rimanenti, inserire la configurazione appropriata per il test e il tipo di applicazione.

    13. (Facoltativo) IN Advanced (Avanzate), fornire informazioni di configurazione per la sessione di test.

    14. Seleziona Salva.

    15. Nella fase che stai modificando, scegli Done (Fatto). Nel riquadro AWS CodePipeline , scegli Save (Salva) e quindi scegli Save (Salva) sul messaggio di avviso.

    16. Per inviare le modifiche e avviare una compilazione tramite pipeline, scegliere Release change (Rilascia modifica) e quindi scegliere Release (Rilascia).