Informazioni sull'ambiente di generazione

Dettagli ambiente build

Cloud Manager crea e verifica il codice utilizzando un ambiente di build specializzato. Questo ambiente ha i seguenti attributi:

  • L'ambiente di costruzione è basato su Linux, derivato da Ubuntu 18.04.

  • Apache Maven 3.6.0 è installato.

  • Le versioni Java installate sono Oracle JDK 8u202 e 11.0.2.

  • Sono installati alcuni pacchetti di sistema aggiuntivi necessari:

    • bzip2
    • decomprimere
    • libpng
    • imagemagick
    • graphicsmagick
  • Altri pacchetti possono essere installati in fase di creazione come descritto sotto.

  • Ogni costruzione è fatta su un ambiente incontaminato; il contenitore di compilazione non mantiene alcuno stato tra le esecuzioni.

  • Maven è sempre eseguito con i tre comandi seguenti:

    • 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 packageco-maven-plugin:prepare-agent package
  • Maven è configurato a livello di sistema con un file settings.xml che include automaticamente l'archivio dell'Adobe pubblico Artifact. Per ulteriori informazioni, vedere Adobe Public Maven Repository.

NOTA

Sebbene Cloud Manager non definisca una versione specifica di jacoco-maven-plugin, la versione utilizzata deve essere almeno 0.7.5.201505241946.

Utilizzo del supporto Java 11

Cloud Manager ora supporta la creazione di progetti per i clienti con Java 8 e Java 11. Per impostazione predefinita, i progetti vengono creati utilizzando Java 8.

I clienti che desiderano utilizzare Java 11 nei loro progetti possono farlo utilizzando il plug-in Apache Maven Toolchain Plugin.

A questo scopo, nel file pom.xml, aggiungete una voce <plugin> simile alla seguente:

<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>
NOTA

I valori dei fornitori supportati sono oracle e sune i valori delle versioni supportate sono 1.8, 1.11 e 11.

NOTA

La build del progetto di Cloud Manager utilizza ancora Java 8 per richiamare Maven, pertanto il controllo o l'applicazione della versione Java configurata nel plug-in della catena di strumenti tramite plug-in come il Apache Maven Enforcer Plugin non funziona e tali plug-in non devono essere utilizzati.

Variabili di ambiente

Variabili di ambiente standard

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

Ad esempio, se si sta effettuando una minificazione JavaScript in fase di creazione, attraverso uno strumento come gulp, potrebbe essere necessario utilizzare un livello di minificazione diverso quando si crea un ambiente di sviluppo anziché costruire per il palco e la produzione.

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

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

Variabili di tubazione

In alcuni casi, il processo di creazione di un cliente può dipendere da variabili di configurazione specifiche che non sarebbero adatte a essere inserite nell'archivio Git o che 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'interfaccia 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 generazione come variabile di ambiente a cui è possibile fare riferimento all'interno del file pom.xml o di altri script di compilazione.

Per impostare una variabile utilizzando CLI, eseguire un comando come:

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

È possibile elencare le variabili correnti:

$ aio cloudmanager:list-pipeline-variables PIPELINEID

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

Se utilizzata all'interno di un file Maven pom.xml, è generalmente utile mappare queste variabili alle proprietà Maven utilizzando una sintassi simile alla seguente:

        <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

Alcune build richiedono l'installazione di pacchetti di sistema aggiuntivi per funzionare completamente. Ad esempio, una build può richiamare uno script Python o ruby e, di conseguenza, deve disporre di un interprete lingua appropriato installato. A tale scopo, è possibile chiamare exec-maven-plugin per richiamare APT. In genere, questa esecuzione deve 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, ad esempio utilizzando gem per RubyGems o pip per i pacchetti Python.

NOTA

L'installazione di un pacchetto di sistema in questo modo non lo installa nell'ambiente di runtime utilizzato per eseguire Adobe Experience Manager. Se avete bisogno di installare un pacchetto di sistema nell'ambiente AEM, contattate il rappresentante Adobe.

In questa pagina

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free