Skip to content

cielo pdv deploy versioning

technical-documenter edited this page Aug 26, 2026 · 2 revisions

Cielo PDV deploy — version e versionCode posicionais

Objetivo

Documentar a regra de versionamento aplicada no workflow de deploy do PDV Lave-Go (Cielo Store / staging) no app-community.

A partir do commit e9dac6d (updts), o job de build passa a atualizar simultaneamente:

  1. expo.version — versão legível exibida na Cielo Store (ex.: 1.7.5);
  2. expo.android.versionCode — inteiro posicional derivado da mesma versão semântica (ex.: 10705).

Isso evita divergência entre o que o lojista vê na loja e o que o Android/Cielo valida internamente.

Arquivo afetado

Arquivo Papel
.github/workflows/cielo-deploy-pdv-lavego-STAGING.yml Deploy do APK PDV Lave-Go Staging para Cielo (package com.lavego.staging)

Gatilho do workflow

  • workflow_run do workflow "Deploy Android Apps" (completed, branch master);
  • ou workflow_dispatch manual.

O job define APP_TYPE=POS, PACKAGE_NAME=com.lavego.staging, endpoints apinew.lave-go.com / app.lave-go.com.

Fórmula do versionCode posicional

Fonte da versão: package.json → campo version (semver MAJOR.MINOR.PATCH).

versionCode = (MAJOR * 10000) + (MINOR * 100) + PATCH

Exemplos:

package.json version expo.version expo.android.versionCode
1.7.4 1.7.4 10704
1.7.5 1.7.5 10705
1.8.0 1.8.0 10800
2.0.1 2.0.1 20001

Passos relevantes no job

  1. Update version and versionCode in app.json (Positional)
    package.json.version, calcula o versionCode e grava os dois campos em app.json antes do assembleRelease.

  2. Build Android APK (./gradlew assembleRelease).

  3. Extract App Version and VersionCode
    Re-lê app.json e exporta para o ambiente do runner:

    • APP_VERSION — versão de exibição (Cielo Store);
    • APP_VERSION_CODE — versionCode numérico (validação Android/Cielo).
  4. Upload FTP do APK e verificação de presença no diretório remoto.

Por que os dois campos

Campo Consumidor Motivo
expo.version Cielo Store / lojista Texto legível da versão do app na listagem da loja
expo.android.versionCode Android Package Manager / Cielo Inteiro monotônico exigido para atualização e validação interna

Antes da alteração, o job atualizava apenas o versionCode. O expo.version podia permanecer desatualizado em relação ao package.json, gerando inconsistência na vitrine da Cielo.

Escopo e fora de escopo

  • Escopo: apenas o workflow cielo-deploy-pdv-lavego-STAGING.yml e a convenção posicional descrita.
  • Fora de escopo: pipelines genéricos (deploy.yml, deploy-lave-go.yml, android-deploy-lavego-shop-v2.yml), versionamento de outros white-labels, e lógica de Play Store track.

Referências

Clone this wiki locally