Favicon

You are here: Home > Distribución de Apps > CI/CD > Azure Pipelines

Azure Pipelines

Integra Applivery con Azure Pipelines para automatizar la distribución de Apps móviles usando Fastlane o la API de Applivery.

8 min read

TL;DR

Integra Applivery con Azure Pipelines para automatizar la distribución de apps móviles usando Fastlane o la CLI de Applivery.

azure-pipelines-long

Azure DevOps es una plataforma de Microsoft que cubre el ciclo de vida completo de las aplicaciones: control de versiones, gestión de proyectos, compilaciones automatizadas, pruebas y gestión de releases. Azure Pipelines, parte del conjunto de Azure DevOps, proporciona pipelines CI/CD alojados en la nube para Linux, macOS y Windows, con soporte para aplicaciones web, de escritorio y móviles.

La integración de Applivery con Azure Pipelines te permite subir automáticamente nuevas Builds a Applivery al final de cada ejecución del pipeline, haciéndolas inmediatamente disponibles para los equipos de QA, las partes interesadas o los usuarios internos.

Hay dos enfoques para integrar Azure Pipelines con Applivery:

  • Mediante Fastlane (recomendado para proyectos iOS y Android que ya usan Fastlane) — delega la subida al plugin de Applivery para Fastlane.
  • Mediante la API de subida de Applivery directamente (recomendado para cualquier proyecto o cuando no se usa Fastlane) — llama a la API con un paso curl en tu pipeline YAML.

Requisitos previos

Antes de configurar cualquiera de los dos enfoques, asegúrate de tener:

  • Una cuenta de Azure DevOps con una configuración de Azure Pipelines en marcha.
  • Un App API Token de Applivery. Encuéntralo en Ajustes de la App → Token API en el panel de Applivery, o consulta Apps API Authentication.
  • Un pipeline que genere un artefacto de Build (.ipa, .apk, .aab u otro formato compatible).

1
Guardar el App Token como variable secreta

Nunca escribas tu token de Applivery directamente en azure-pipelines.yml. Guárdalo como variable secreta del pipeline en Azure DevOps para que quede enmascarado en los logs y no se incluya en el repositorio.

  1. Abre tu proyecto de Azure DevOps y ve a Pipelines → tu pipeline → Edit.
  2. Haz clic en Variables (arriba a la derecha).
  3. Añade una nueva variable llamada APPLIVERY_TOKEN.
  4. Pega tu App API Token de Applivery como valor.
  5. Activa el interruptor Keep this value secret para enmascararlo en los logs.
  6. Guarda.
    azure-devops-pipelines-vars

Una vez definida, referénciala en tu pipeline YAML como $(APPLIVERY_TOKEN).

2
Opción A — Integración mediante Fastlane

Este es el enfoque recomendado si tu proyecto ya usa Fastlane para compilar y firmar. El plugin de Applivery para Fastlane gestiona la subida y todos los metadatos automáticamente.

Para la documentación completa del plugin de Fastlane, consulta Integración con Fastlane.

Pipeline YAML

En tu azure-pipelines.yml, añade un paso de script que invoque tu lane de Fastlane y pase el token como parámetro:

- script: fastlane dev_deploy applivery_token:$(APPLIVERY_TOKEN)
  displayName: 'Desplegar en Applivery mediante Fastlane'
  env:
    APPLIVERY_TOKEN: $(APPLIVERY_TOKEN)

Fastfile

Define un lane en tu Fastfile que compile y suba a Applivery. El ejemplo siguiente usa last_git_commit[:message] como changelog y number_of_commits para incrementar el número de Build automáticamente:

desc "Compilar y desplegar en Applivery"
lane :dev_deploy do |options|
  increment_build_number(
    build_number: number_of_commits
  )

  build_app(
    scheme: "MyApp-Dev",
    export_method: "enterprise"
  )

  applivery(
    app_token: options[:applivery_token],
    notify_collaborators: true,
    changelog: last_git_commit[:message]
  )
end
Tip

Puedes ampliar la acción applivery con opciones adicionales como tags, notify_message y notify_language. Consulta la documentación de integración con Fastlane para ver todos los parámetros disponibles.

3
Opción B — Integración mediante la API de subida (sin Fastlane)

Si no usas Fastlane, o prefieres una configuración más sencilla sin dependencias adicionales, llama directamente a la API de subida de Applivery desde tu pipeline usando curl. Funciona para cualquier plataforma y agente de pipeline.

Pipeline YAML — Ejemplo iOS

trigger:
  - main

pool:
  vmImage: 'macos-latest'

stages:
  - stage: Build
    jobs:
      - job: BuildAndUpload
        steps:
          - checkout: self

          - task: Xcode@5
            displayName: 'Compilar app iOS'
            inputs:
              actions: 'build'
              scheme: 'MyApp'
              sdk: 'iphoneos'
              configuration: 'Release'
              xcWorkspacePath: 'MyApp.xcworkspace'
              packageApp: true
              signingOption: 'default'

          - script: |
              curl 'https://upload.applivery.io/v1/integrations/builds' \
                --retry 5 \
                --fail \
                -H "Authorization: Bearer $(APPLIVERY_TOKEN)" \
                -F "build=@$(Build.ArtifactStagingDirectory)/MyApp.ipa" \
                -F "versionName=$(Build.BuildNumber)" \
                -F "changelog=$(Build.SourceVersionMessage)" \
                -F "tags=azure-pipelines, ios" \
                -F "notifyCollaborators=true" \
                -F "notifyMessage=Nueva Build disponible desde Azure Pipelines" \
                -F "notifyLanguage=es" \
                -F "deployer.name=Azure Pipelines" \
                -F "deployer.info.commit=$(Build.SourceVersion)" \
                -F "deployer.info.branch=$(Build.SourceBranchName)" \
                -F "deployer.info.commitMessage=$(Build.SourceVersionMessage)" \
                -F "deployer.info.buildUrl=$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_build/results?buildId=$(Build.BuildId)" \
                -F "deployer.info.buildNumber=$(Build.BuildNumber)" \
                -F "deployer.info.repositoryUrl=$(Build.Repository.Uri)"
            displayName: 'Subir a Applivery'
            env:
              APPLIVERY_TOKEN: $(APPLIVERY_TOKEN)

Pipeline YAML — Ejemplo Android

trigger:
  - main

pool:
  vmImage: 'ubuntu-latest'

stages:
  - stage: Build
    jobs:
      - job: BuildAndUpload
        steps:
          - checkout: self

          - task: Gradle@3
            displayName: 'Compilar APK de Android'
            inputs:
              workingDirectory: ''
              gradleWrapperFile: 'gradlew'
              gradleOptions: '-Xmx3072m'
              tasks: 'assembleRelease'

          - script: |
              curl 'https://upload.applivery.io/v1/integrations/builds' \
                --retry 5 \
                --fail \
                -H "Authorization: Bearer $(APPLIVERY_TOKEN)" \
                -F "build=@$(Build.ArtifactStagingDirectory)/app-release.apk" \
                -F "versionName=$(Build.BuildNumber)" \
                -F "changelog=$(Build.SourceVersionMessage)" \
                -F "tags=azure-pipelines, android" \
                -F "notifyCollaborators=true" \
                -F "notifyMessage=Nueva Build de Android desde Azure Pipelines" \
                -F "notifyLanguage=es" \
                -F "deployer.name=Azure Pipelines" \
                -F "deployer.info.commit=$(Build.SourceVersion)" \
                -F "deployer.info.branch=$(Build.SourceBranchName)" \
                -F "deployer.info.commitMessage=$(Build.SourceVersionMessage)" \
                -F "deployer.info.buildUrl=$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_build/results?buildId=$(Build.BuildId)" \
                -F "deployer.info.buildNumber=$(Build.BuildNumber)" \
                -F "deployer.info.repositoryUrl=$(Build.Repository.Uri)"
            displayName: 'Subir a Applivery'
            env:
              APPLIVERY_TOKEN: $(APPLIVERY_TOKEN)

Variables predefinidas de Azure Pipelines

Los ejemplos de pipeline anteriores usan variables predefinidas de Azure Pipelines, disponibles automáticamente en cualquier pipeline sin configuración adicional:

Variable Descripción
Build.BuildNumber El número de Build. Útil como versionName en Applivery.
Build.BuildId ID numérico único para la ejecución de la Build. Se usa para construir la URL de la Build.
Build.SourceVersion SHA completo del commit de Git que desencadenó la Build.
Build.SourceBranchName Nombre de la rama que desencadenó la Build. Por ejemplo: main, develop.
Build.SourceVersionMessage Mensaje del commit que desencadenó la Build. Útil como changelog.
Build.Repository.Uri URL del repositorio de origen.
Build.ArtifactStagingDirectory Directorio local donde se guardan los artefactos de compilación.
System.TeamFoundationCollectionUri URL base de tu organización de Azure DevOps.
System.TeamProject Nombre del proyecto de Azure DevOps.

Para la lista completa de variables predefinidas, consulta la documentación de variables predefinidas de Azure Pipelines.


Referencia de parámetros de subida

Los campos del formulario curl se corresponden directamente con los parámetros de la API de subida de Applivery. Los más utilizados:

Parámetro Descripción
build El archivo binario a subir.
versionName Etiqueta legible para la Build. Usar $(Build.BuildNumber) la vincula con la ejecución de Azure.
changelog Notas de la versión mostradas en el panel y en los emails de notificación.
tags Etiquetas separadas por comas para filtrar Builds.
notifyCollaborators Establece como true para enviar un email a los Colaboradores de la App al subir.
notifyMessage Mensaje personalizado incluido en el email de notificación.
deployer.name Nombre de la plataforma CI mostrado en el panel de Applivery.
deployer.info.commit SHA del commit de Git.
deployer.info.branch Nombre de la rama de Git.
deployer.info.buildNumber Número de Build del pipeline.
deployer.info.buildUrl URL directa a la ejecución del pipeline de Azure.

Para la referencia completa de parámetros, consulta POST – Subir una Build.

Azure Pipelines es un servicio CI/CD alojado en la nube dentro de Azure DevOps que permite compilar, probar y desplegar aplicaciones web, de escritorio y móviles en Linux, macOS y Windows.

Necesitas una cuenta de Azure DevOps, un App API Token de Applivery (en Ajustes de la App → API Tokens) y un pipeline que genere un artefacto de Build (.ipa, .apk, .aab, etc.).

Guarda tu token como variable secreta del pipeline en Azure DevOps: ve a Pipelines → tu pipeline → Edit → Variables, añade una variable llamada `APPLIVERY_TOKEN` y activa «Keep this value secret».

El enfoque recomendado es usar el plugin de Applivery para Fastlane, que gestiona la subida y los metadatos automáticamente. Debes invocar tu lane de Fastlane desde tu `azure-pipelines.yml`.

Puedes llamar directamente a la API de subida de Applivery desde tu pipeline usando `curl`. Este enfoque funciona para cualquier plataforma y agente de pipeline.

Puedes usar la variable `Build.BuildNumber` como `versionName` en Applivery para vincular la Build con la ejecución de Azure Pipelines.

Al establecer `notifyCollaborators` como `true`, los Colaboradores de la App recibirán un email cuando se suba una nueva Build a Applivery.

La variable `Build.SourceVersionMessage`, que contiene el mensaje del commit, puede usarse como `changelog` al subir a Applivery.

Last updated: June 8, 2026