Ambiente di creazione

Scopri l’ambiente di build specializzato che gli utenti di Cloud Manager creano e testano il codice.

Dettagli dell'ambiente

Gli ambienti di build di Cloud Manager hanno i seguenti attributi.

  • L'ambiente di creazione è basato su Linux, derivato da Ubuntu 18.04.
  • Apache Maven 3.6.0 è installato.
  • Le versioni Java installate sono Oracle JDK 8u202 e Oracle JDK 11.0.2.
  • Per impostazione predefinita, la JAVA_HOME variabile di ambiente impostata su /usr/lib/jvm/jdk1.8.0_202 che contiene l'Oracle JDK 8u202. Vedi la sezione Versione JDK di esecuzione Maven alternativa per ulteriori dettagli.
  • Ci sono alcuni pacchetti di sistema aggiuntivi installati che sono necessari.
    • bzip2
    • unzip
    • libpng
    • imagemagick
    • graphicsmagick
  • Altri pacchetti possono essere installati in fase di creazione come descritto nella sezione Installazione di pacchetti di sistema aggiuntivi.
  • Ogni build viene realizzata in un ambiente incontaminato. Il contenitore di build non mantiene nessuno stato tra le esecuzioni.
  • Maven viene sempre eseguito con questi tre comandi:
    • mvn --batch-mode org.apache.maven.plugins:maven-dependency-plugin:3.1.2:resolve-plugins
    • mvn --batch-mode org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean -Dmaven.clean.failOnError=false
    • mvn --batch-mode org.jacoco:jacoco-maven-plugin:prepare-agent package
  • Maven è configurato a livello di sistema con un settings.xml file che include automaticamente l’archivio degli artefatti dell’Adobe pubblico utilizzando un profilo denominato adobe-public.
NOTA

Anche se Cloud Manager non definisce una versione specifica del jacoco-maven-plugin, la versione utilizzata deve essere almeno 0.7.5.201505241946.

SUGGERIMENTO

Per informazioni sull’utilizzo delle API di Cloud Manager, consulta le seguenti risorse aggiuntive:

Utilizzo di una versione Java specifica

Per impostazione predefinita, i progetti sono generati dal processo di creazione di Cloud Manager utilizzando il JDK di Oracle 8. I clienti che desiderano utilizzare un JDK alternativo hanno due opzioni.

Catene di strumenti Maven

La Plug-in Maven Toolchain consente ai progetti di selezionare un JDK specifico (o toolchain) da utilizzare nel contesto dei plug-in Maven consapevoli delle catene di strumenti. Questo viene fatto nel pom.xml specificando un valore di fornitore e di versione. Una sezione di esempio nel pom.xml file:

        <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-toolchains-plugin</artifactId>
    <version>1.1</version>
    <executions>
        <execution>
            <goals>
                <goal>toolchain</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <toolchains>
            <jdk>
                <version>11</version>
                <vendor>oracle</vendor>
            </jdk>
        </toolchains>
    </configuration>
</plugin>

Questo farà sì che tutti i plug-in Maven consapevoli delle catene di strumenti utilizzino l’Oracle JDK, versione 11.

Quando si utilizza questo metodo, Maven stesso viene comunque eseguito utilizzando il JDK predefinito (Oracle 8) e il JAVA_HOME la variabile di ambiente non viene modificata. Pertanto, controlla o applica la versione Java tramite plug-in come Plug-in applicazione Apache Maven non funziona e tali plug-in non devono essere utilizzati.

Le combinazioni fornitore/versione attualmente disponibili sono:

Produttore Versione
oracle 1,8
oracle 1,11
oracle 11
sole 1,8
sole 1,11
sole 11
NOTA

A partire da aprile 2022, Oracle JDK sarà il JDK predefinito per lo sviluppo e il funzionamento delle applicazioni AEM. Il processo di creazione di Cloud Manager passa automaticamente a utilizzando Oracle JDK, anche se nella toolchain Maven è selezionata esplicitamente un’opzione alternativa. Fai riferimento a le note sulla versione di aprile per ulteriori dettagli.

Versione JDK di esecuzione Maven alternativa

È inoltre possibile selezionare l'Oracle 8 o l'Oracle 11 come JDK per l'intera esecuzione Maven. A differenza delle opzioni delle catene degli strumenti, questo cambia il JDK utilizzato per tutti i plugin a meno che la configurazione delle catene degli utensili non sia impostata anche nel qual caso la configurazione delle catene degli utensili viene ancora applicata per i plugin Maven consapevoli delle catene degli utensili. Di conseguenza, verifica e applica la versione Java utilizzando il Plug-in applicazione Apache Maven funzionerà.

A questo scopo, crea un file denominato .cloudmanager/java-version nel ramo dell’archivio git utilizzato dalla pipeline. Questo file può avere contenuto 11 o 8. Qualsiasi altro valore viene ignorato. Se 11 è specificato, viene utilizzato l'Oracle 11 e JAVA_HOME variabile di ambiente impostata su /usr/lib/jvm/jdk-11.0.2. Se 8 è specificato, viene utilizzato l'Oracle 8 e il JAVA_HOME variabile di ambiente impostata su /usr/lib/jvm/jdk1.8.0_202.

Variabili di ambiente

Variabili di ambiente standard

In alcuni casi, potrebbe essere necessario variare il processo di creazione in base alle informazioni sul programma o sulla pipeline.

Ad esempio, se la minimizzazione JavaScript in fase di creazione viene eseguita tramite uno strumento come il gulp, potrebbe essere utile utilizzare un livello di minimizzazione diverso durante la creazione di un ambiente di sviluppo rispetto alla creazione di uno staging e produzione.

Per supportare questa funzione, Cloud Manager aggiunge al contenitore di build le variabili di ambiente standard per ogni esecuzione.

Nome della variabile Descrizione
CM_BUILD Sempre impostato su true
BRANCH Il ramo configurato per l’esecuzione
CM_PIPELINE_ID Identificatore numerico della pipeline
CM_PIPELINE_NAME Nome della pipeline
CM_PROGRAM_ID Identificatore numerico del programma
CM_PROGRAM_NAME Nome del programma
ARTIFACTS_VERSION Per una pipeline di staging o di produzione, la versione sintetica generata da Cloud Manager

Variabili di pipeline

In alcuni casi, il processo di creazione può dipendere da specifiche variabili di configurazione che non sarebbero appropriate per l’inserimento nell’archivio Git o dovrebbero variare tra le esecuzioni della pipeline che utilizzano lo stesso ramo.

Cloud Manager consente di configurare queste variabili tramite l’API di Cloud Manager o l’CLI di Cloud Manager in base alla pipeline. Le variabili possono essere memorizzate come testo normale o cifrate a riposo. In entrambi i casi, le variabili sono rese disponibili all'interno dell'ambiente di creazione come variabile di ambiente a cui è possibile fare riferimento dall'interno del pom.xml file o altri script di build.

Per impostare una variabile utilizzando CLI, eseguire un comando simile al seguente.

$ aio cloudmanager:set-pipeline-variables PIPELINEID --variable MY_CUSTOM_VARIABLE test

Le variabili correnti possono essere elencate utilizzando un comando simile al seguente.

$ aio cloudmanager:list-pipeline-variables PIPELINEID

Le variabili devono rispettare determinate limitazioni.

  • I nomi delle variabili possono contenere solo caratteri alfanumerici e il carattere di sottolineatura (_).
    • Per convenzione, i nomi devono essere tutti maiuscoli.
  • Esiste un limite di 200 variabili per pipeline.
  • Ogni nome deve contenere meno di 100 caratteri.
  • Ogni valore di stringa deve essere inferiore a 2048 caratteri.
  • Ogni valore secretString deve essere minore di e 500 caratteri.

Quando viene utilizzato all'interno di un Maven pom.xml tipicamente è utile mappare queste variabili alle proprietà Maven utilizzando una sintassi simile a quella riportata di seguito.

        <profile>
            <id>cmBuild</id>
            <activation>
                <property>
                    <name>env.CM_BUILD</name>
                </property>
            </activation>
            <properties>
                <my.custom.property>${env.MY_CUSTOM_VARIABLE}</my.custom.property>
            </properties>
        </profile>

Installazione di pacchetti di sistema aggiuntivi

Per funzionare completamente, alcune build richiedono l'installazione di pacchetti di sistema aggiuntivi. Ad esempio, una build può richiamare uno script Python o Ruby e, di conseguenza, deve disporre di un interprete di lingua appropriato installato. Questa operazione può essere eseguita chiamando il exec-maven-plugin per richiamare APT. Questa esecuzione deve generalmente essere racchiusa in un profilo Maven specifico per Cloud Manager. Ad esempio, per installare Python:

        <profile>
            <id>install-python</id>
            <activation>
                <property>
                        <name>env.CM_BUILD</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.6.0</version>
                        <executions>
                            <execution>
                                <id>apt-get-update</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>apt-get</executable>
                                    <arguments>
                                        <argument>update</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-python</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>apt-get</executable>
                                    <arguments>
                                        <argument>install</argument>
                                        <argument>-y</argument>
                                        <argument>--no-install-recommends</argument>
                                        <argument>python</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

Questa stessa tecnica può essere utilizzata per installare pacchetti specifici per la lingua, ovvero utilizzando gem per RubyGems o pip per pacchetti Python.

NOTA

L'installazione di un pacchetto di sistema in questo modo non lo installa nell'ambiente di runtime utilizzato per l'esecuzione di Adobe Experience Manager. Se hai bisogno di un pacchetto di sistema installato nell’ambiente AEM, contatta il tuo rappresentante Adobe.

In questa pagina