Byggmiljö build-environment
Läs om Cloud Manager byggmiljö och hur den bygger och testar din kod.
Information om byggmiljö build-environment-details
Cloud Manager bygger och testar koden i en specialiserad byggmiljö.
-
Byggmiljön är Linux-baserad och kommer från Ubuntu 2.04.
-
Apache Maven 3.9.4 är installerad.
- Adobe rekommenderar att användare uppdaterar sina Maven-databaser så att HTTPS används i stället för HTTP.
-
De Java-versioner som är installerade är Oracle JDK 11.0.22 och Oracle JDK 8u401.
-
VIKTIGT: Som standard är miljövariabeln
JAVA_HOME
inställd på/usr/lib/jvm/jdk1.8.0_401
som innehåller Oraclet JDK 8u401. Den här standardinställningen bör åsidosättas för AEM Cloud Projects som ska använda JDK 11. Mer information finns i avsnittet Ange JDK-version för Maven. -
Det finns ytterligare systempaket installerade som är nödvändiga.
bzip2
unzip
libpng
imagemagick
graphicsmagick
-
Andra paket kan installeras vid byggtillfället enligt beskrivningen i avsnittet Installera ytterligare systempaket.
-
Varje bygge körs i en ren miljö där byggbehållaren inte har något läge mellan körningarna.
-
Maven körs alltid med följande tre kommandon.
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 har konfigurerats på systemnivå med en
settings.xml
-fil, som automatiskt inkluderar den offentliga Adobe-artefaktdatabasen med en profil med namnetadobe-public
. (Mer information finns i Adobe Public Maven Repository.)
jacoco-maven-plugin
måste den version som används vara minst 0.7.5.201505241946
.HTTPS Maven-databaser https-maven
Cloud Manager release 2023.10.0 påbörjade en rullande uppdatering av byggmiljön (som i version 2023.12.0) som innehöll en uppdatering till Maven 3.8.8. En betydande förändring som introducerades i Maven 3.8.1 var en säkerhetsförbättring som syftar till att minska potentiella sårbarheter. Maven inaktiverar nu alla osäkra http://*
-speglar som standard, vilket beskrivs i versionsinformationen för Maven.
Som ett resultat av den här säkerhetsförbättringen kan vissa användare råka ut för problem under byggfasen, särskilt när artefakter hämtas från Maven-databaser som använder osäkra HTTP-anslutningar.
För att få en smidig upplevelse med den uppdaterade versionen rekommenderar Adobe att användare uppdaterar sina Maven-databaser till att använda HTTPS i stället för HTTP. Denna justering är anpassad efter branschens växande övergång till säkra kommunikationsprotokoll och hjälper till att upprätthålla en säker och tillförlitlig byggprocess.
Använd en specifik Java-version using-java-support
Cloud Manager byggprocess använder Oracle 8 JDK för att skapa projekt som standard, men AEM Cloud Service-kunder bör ställa in JDK-versionen för Maven-exekvering på 11
.
Ange version av Maven JDK alternate-maven-jdk-version
Adobe rekommenderar att du ställer in JDK-versionen för hela Maven-körningen på 11
i en .cloudmanager/java-version
-fil.
Det gör du genom att skapa en fil med namnet .cloudmanager/java-version
i Git-databasgrenen som används av pipeline. Redigera filen så att den bara innehåller texten, 11
. Även om Cloud Manager accepterar värdet 8
stöds inte den här versionen längre för AEM Cloud Service-projekt. Alla andra värden ignoreras. När 11
anges används Oracle 11 och miljövariabeln JAVA_HOME
ställs in på /usr/lib/jvm/jdk-11.0.22
.
Miljövariabler - standard environment-variables
Du kan behöva ändra byggprocessen baserat på information om programmet eller pipeline.
Om JavaScript-miniatyrbilder till exempel inträffar vid byggtillfället med ett verktyg som Glup, kan olika miniatyrnivåer föredras för olika miljöer. En utvecklingsbygge kan använda en mindre miniminivå jämfört med staging och produktion.
Som stöd för detta lägger Cloud Manager till dessa standardmiljövariabler i byggbehållaren för varje körning.
CM_BUILD
true
BRANCH
CM_PIPELINE_ID
CM_PIPELINE_NAME
CM_PROGRAM_ID
CM_PROGRAM_NAME
ARTIFACTS_VERSION
CM_AEM_PRODUCT_VERSION
Miljövariabler - pipeline pipeline-variables
Din byggprocess kan kräva specifika konfigurationsvariabler som inte ska lagras i Git-databasen. Dessutom kan du behöva justera de här variablerna mellan pipeline-körningar som använder samma gren.
Mer information finns även i Konfigurera pipeline-variabler.
Installera ytterligare systempaket installing-additional-system-packages
Vissa byggen kräver ytterligare systempaket för att fungera helt. Ett bygge kan till exempel anropa ett Python- eller Ruby-skript och måste ha en lämplig språktolk installerad. Installationsprocessen kan hanteras genom att anropa exec-maven-plugin
i pom.xml
för att anropa APT. Den här exekveringen bör normalt omslutas av en Cloud Manager-specifik Maven-profil. Det här exemplet installerar 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>
Samma teknik kan användas för att installera språkspecifika paket, till exempel med gem
för RubyGems eller pip
för Python-paket.