Une usine logicielle est un ensemble d’outils et de pratiques permettant d’automatiser les différentes étapes du développement d’un logiciel
L'intégration continue est un ensemble de pratiques consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l'application
Le déploiement continu, prolongement de l'intégration continue, est une pratique visant à réduire le plus possible le temps écoulé entre l'écriture d'une nouvelle ligne de code et l'utilisation réelle de ce même code par des utilisateurs finaux.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
runProguard false
}
}
}
dependencies {
..
}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelversion>4.0.0</modelversion>
<groupid>fr.devfest.marseille</groupid>
<artifactid>Devfest</artifactid>
<version>1.0.0.0</version>
<packaging>apk</packaging>
<properties>
<project.build.sourceencoding>UTF-8</project.build.sourceencoding>
</properties>
<dependencies>
...
</dependencies>
<build>
<finalname>${project.artifactId}-${project.version}</finalname>
<sourcedirectory>src</sourcedirectory>
<testsourcedirectory>test</testsourcedirectory>
<plugins>
<plugin>
<groupid>com.jayway.maven.plugins.android.generation2</groupid>
<artifactid>android-maven-plugin</artifactid>
<version>3.6.0</version>
<extensions>true</extensions>
<configuration>
<!-- <sdk> <platform>16</platform> </sdk> -->
<sdk>
<path>${env.ANDROID_HOME}</path>
<!-- <platform>2.2</platform> -->
<platform>17</platform>
</sdk>
<dex>
<jvmarguments>
<argument>-Xms512m</argument>
<argument>-Xmx1024m</argument>
</jvmarguments>
</dex>
</configuration>
<executions>
<!-- <execution> <id>startEmulator</id> <phase>initialize</phase> <goals>
<goal>emulator-start</goal> </goals> </execution> -->
<execution>
<id>alignApk</id>
<phase>package</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactid>maven-compiler-plugin</artifactid>
<configuration>
<source>1.7
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupid>org.apache.maven.plugins</groupid>
<artifactid>maven-jarsigner-plugin</artifactid>
<executions>
<execution>
<id>signing</id>
<goals>
<goal>sign</goal>
<goal>verify</goal>
</goals>
<phase>package</phase>
<inherited>true</inherited>
<configuration>
<removeexistingsignatures>true</removeexistingsignatures>
<archivedirectory>
<includes>
<include>${project.build.directory}/${project.artifactId}-${project.version}.apk</include>
</includes>
...
</archivedirectory></configuration>
</execution>
</executions>
</plugin>
<!-- the signed apk then needs to be zipaligned -->
<plugin>
<groupid>com.jayway.maven.plugins.android.generation2</groupid>
<artifactid>maven-android-plugin</artifactid>
<inherited>true</inherited>
<configuration>
<sign>
<debug>false</debug>
</sign>
<zipalign>
<verbose>true</verbose>
<inputapk>${project.build.directory}/${project.artifactId}-${project.version}.apk</inputapk>
<outputapk>${project.build.directory}/${project.artifactId}-${project.version}-signed-aligned.apk
</outputapk>
</zipalign>
<skip>false</skip>
</configuration>
<executions>
<execution>
<id>alignApk</id>
<phase>package</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<properties>
<android.debuggable>false</android.debuggable>
<android.release>true</android.release>
</properties>
</profile>
</profiles>
</project>
adb shell monkey -p your.package.name -v 500