Closed Maik3345 closed 4 months ago
Ejemplo de la implementación en azure devops para los stage de beta, publish y deploy
name: my-app
pool:
vmImage: ubuntu-latest
trigger: none
variables:
- group: group-of-variables
stages:
- stage: 'Beta'
displayName: 'Beta'
condition: succeeded()
jobs:
- job: Beta
displayName: 'Generate a beta release'
steps:
- checkout: self
persistCredentials: true
- task: VtexPullRequestPublish@0
displayName: 'TASK: Beta publish'
inputs:
account: $(VTEX_ACCOUNT_NAME_PROD)
email: $(VTEX_EMAIL_PROD)
apiKey: $(VTEX_API_KEY_PROD)
apiToken: $(VTEX_API_TOKEN_PROD)
beta: true
forcePublish: true
- task: GitPullRequestRelease@0
displayName: 'TASK: Beta release'
inputs:
devBranch: 'develop'
beta: true
mergeIntoDevelop: true
- stage: 'Publish'
displayName: 'Publish'
condition: succeeded()
jobs:
- deployment:
environment: publish
displayName: 'Make the publish of the app'
strategy:
runOnce:
deploy:
steps:
- checkout: self
persistCredentials: true
- task: VtexPullRequestPublish@0
displayName: 'TASK: publish'
inputs:
account: $(VTEX_ACCOUNT_NAME_PROD)
email: $(VTEX_EMAIL_PROD)
apiKey: $(VTEX_API_KEY_PROD)
apiToken: $(VTEX_API_TOKEN_PROD)
forcePublish: true
- stage: 'Deploy'
displayName: 'Deploy'
condition: succeeded()
jobs:
- deployment:
environment: prod
displayName: 'Deploy and release'
strategy:
runOnce:
deploy:
steps:
- checkout: self
persistCredentials: true
- task: VtexPullRequestDeploy@0
displayName: 'TASK: deploy'
inputs:
account: $(VTEX_ACCOUNT_NAME_PROD)
email: $(VTEX_EMAIL_PROD)
apiKey: $(VTEX_API_KEY_PROD)
apiToken: $(VTEX_API_TOKEN_PROD)
- task: GitPullRequestRelease@0
displayName: 'TASK: release'
Se plantea remover el proceso de deploy del task para publicar en el pull request. esta lógica se moverá para un solo task el cual se encargará solo de hacer el deploy y así poder partir el proceso en azure devops de la siguiente forma
con esta implementación se tiene un proceso así:
Para el stage de publish y deploy se plantea usar el environment de azure el cual permite pausar el proceso hasta que alguien que pertenezca al grupo del environment apruebe la build