Search code examples
jenkinsjakarta-eecontinuous-integrationglassfish-3devops

Check if an app is deployed and undeploy it if it is deployed using Bash in Jenkins


I am using a job in Junkins to build my application (.ear) and then deploy it in Glassfish. I want to execute asadmin undeploy myApp before I deploy my application (the new version). The problem is in the 1st execution there is no application deployed so executing asadmin undeploy myApp generates an error. Any suggestion to deal with this situation. Any proposition is the most welcomed. Thank's.


EDIT :

Correct me if I am wrong in my method, maybe I am doing things wrong! Is this the right way to have a chain of production of a sowtware? Do I have to stop the server and restart it?


Solution

  • After watching some videos on Bash and with the help provided by Davide Patti, I figured out how to do it.

    Knowing that I used the answer of Davide Patti and I thank him for his help I choosed to write my own answer for a simple reason: Patti's answer didn't work.

    In order to test if an application is deployed and undeploy it if it is deployed I used the following Bash code which worked for me:

    apps=`asadmin list-applications -t --user=admin --passwordfile=password.txt`
    
    for app in $apps
    do
        if [ $app = "the_name_of_your_app" ]
        then
            asadmin --user=admin --passwordfile=password.txt undeploy the_name_of_your_app
        fi
    done;
    

    PS: the content of password.txt is a single line: AS_ADMIN_PASSWORD=admin