Expand my Community achievements bar.

SOLVED

How to do Adobe App (adobe IO) deployment using CI/CD?

Avatar

Level 9

I am using Adobe I/O Runtime and have deployed my web action. Currently, I have checked out the code locally and am using the aio app run command to deploy the code to the appropriate Adobe I/O workspace. Is it possible to achieve this deployment process using Cloud Manager or Jenkins? Are there any best practices I should follow?

1 Accepted Solution

Avatar

Correct answer by
Level 6

Hi @Mario248 ,

AIO workspace is NOT cloudmanager controlled. But you can sure automate with Jenkins if required. 

Adobe provides even better CI-CD devops experience using Github Actions. There are lot of documentation:

 

https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/con...

https://developer.adobe.com/app-builder/docs/guides/deployment/

https://developer.adobe.com/app-builder/docs/getting_started/publish_app/

https://developer.adobe.com/app-builder/docs/guides/deployment/ci_cd_for_firefly_apps/

 

I ll summarize if documentation is overwhelming

 

Adobe recommended way: Github Workflows

  1. Inside your Github project, create .github/workflows folder
  2. Create deploy_stage.yaml and copy this script
  3. Create deploy_prod.yaml and copy this script
  4. Add required github secrets. CD done. Next time commit happens to stage branch, it will automatically deploy the action. 
  5. I simplified my Prod script like stage, to deploy when commit happens to `main` branch

Custom way using Jenkins:

  1. You may not like the adobe Github workflows, maybe coz, you dont have enterprise github. Or want traditional waterfall methodology to deploy during production nights etc.
  2. If you are writing Jenkins job, it is reinventing. You ll follow exact steps as adobe workflow
    1. Checkout code
    2. Install node, npm i
    3. install adobe/aio-cli-setup-action,  adobe/aio-apps-action
    4. setup secrets as env variables
    5. Finally run `aio app deploy`. If required add --force-build, verbose, --no-action, whatever required flags. 

One comment though, we tried converting workflow into curl commands and running inside a our client github runners. It failed due to client firewall restrictions. Advice would be to make adobe workflows run. And then explore alternate solutions if required. 

View solution in original post

2 Replies

Avatar

Correct answer by
Level 6

Hi @Mario248 ,

AIO workspace is NOT cloudmanager controlled. But you can sure automate with Jenkins if required. 

Adobe provides even better CI-CD devops experience using Github Actions. There are lot of documentation:

 

https://experienceleague.adobe.com/en/docs/experience-manager-cloud-service/content/implementing/con...

https://developer.adobe.com/app-builder/docs/guides/deployment/

https://developer.adobe.com/app-builder/docs/getting_started/publish_app/

https://developer.adobe.com/app-builder/docs/guides/deployment/ci_cd_for_firefly_apps/

 

I ll summarize if documentation is overwhelming

 

Adobe recommended way: Github Workflows

  1. Inside your Github project, create .github/workflows folder
  2. Create deploy_stage.yaml and copy this script
  3. Create deploy_prod.yaml and copy this script
  4. Add required github secrets. CD done. Next time commit happens to stage branch, it will automatically deploy the action. 
  5. I simplified my Prod script like stage, to deploy when commit happens to `main` branch

Custom way using Jenkins:

  1. You may not like the adobe Github workflows, maybe coz, you dont have enterprise github. Or want traditional waterfall methodology to deploy during production nights etc.
  2. If you are writing Jenkins job, it is reinventing. You ll follow exact steps as adobe workflow
    1. Checkout code
    2. Install node, npm i
    3. install adobe/aio-cli-setup-action,  adobe/aio-apps-action
    4. setup secrets as env variables
    5. Finally run `aio app deploy`. If required add --force-build, verbose, --no-action, whatever required flags. 

One comment though, we tried converting workflow into curl commands and running inside a our client github runners. It failed due to client firewall restrictions. Advice would be to make adobe workflows run. And then explore alternate solutions if required.