Jenkins.io es una herramienta DevOps para flujos de trabajo de integración y entrega continua. Permite gestionar y controlar distintas etapas del proceso de entrega de software, como la compilación, la documentación, las pruebas automatizadas, el empaquetado y el análisis estático de código.
Aunque no disponemos de un plugin oficial de Jenkins —ya que no es la opción más recomendada para gestionar Jenkins a gran escala—, puedes utilizar el siguiente código de referencia, que hace uso del plugin estándar httpRequest de Jenkins junto con nuestra API de Upload, para desplegar fácilmente tus aplicaciones desde Jenkins en Applivery, incluyendo todos los metadatos del repositorio.
stage('Applivery Upload') {
def response = httpRequest(
url: 'https://upload.applivery.io/v1/integrations/builds',
httpMode: 'POST',
consoleLogResponseBody: true,
wrapAsMultipart: true, // Send as multipart/form-data
customHeaders: [
[
maskValue: true,
name: 'Authorization',
value: "Bearer ${env.APPLIVERY_TOKEN}"
]
],
formData: [
[
name: 'build',
fileName: 'app.ipa',
uploadFile: './app.ipa',
contentType: 'application/octet-stream'
],
[name: 'versionName', value: 'My awesome app version'],
[name: 'tags', value: 'tag1, tag2, tag3'],
[name: 'changelog', value: 'Bug fixing'],
[name: 'notifyCollaborators', value: 'false'],
[name: 'notifyEmployees', value: 'false'],
[name: 'notifyMessage', value: 'Enjoy the App'],
[name: 'notifyLanguage', value: 'en'],
[name: 'filter[0][0]', value: 'group1'],
[name: 'filter[0][1]', value: 'group2'],
[name: 'filter[1][0]', value: 'group3'],
[name: 'deployer.name', value: 'Custom CI Platform'],
[name: 'deployer.info.commitMessage', value: 'Fixed issue 123'],
[name: 'deployer.info.commit', value: 'f52ace0'],
[name: 'deployer.info.branch', value: 'develop'],
[name: 'deployer.info.tag', value: 'RC-1'],
[name: 'deployer.info.triggerTimestamp', value: '1558359012580'],
[name: 'deployer.info.buildUrl', value: 'http://www.applivery.io/build/73'],
[name: 'deployer.info.ciUrl', value: 'http://www.applivery.io/ci'],
[name: 'deployer.info.repositoryUrl', value: 'https://github.com/applivery/applivery-ios-sdk'],
[name: 'deployer.info.buildNumber', value: '173']
]
)
echo "response: ${response}"
}