1+ name : Docker Image
2+ on :
3+ pull_request :
4+ branches :
5+ - develop
6+ workflow_dispatch :
7+
8+
9+ jobs :
10+ build :
11+ runs-on : ubuntu-latest
12+ env :
13+ MONGO_PROD_DB : ${{ secrets.MONGO_PROD_DB}}
14+ REGISTER_FRONTEND_URL : " https://beta.devpulse.org/register"
15+ REGISTER_ORG_FRONTEND_URL : " https://beta.devpulse.org/signup/org"
16+ FRONTEND_LINK : " https://beta.devpulse.org"
17+ NODE_ENV : " production"
18+ ADMIN_EMAIL : ${{ secrets.ADMIN_EMAIL }}
19+ ADMIN_PASS : ${{ secrets.ADMIN_PASS }}
20+ COORDINATOR_EMAIL : ${{ secrets.COORDINATOR_EMAIL }}
21+ COORDINATOR_PASS : ${{ secrets.COORDINATOR_PASS }}
22+ GH_TOKEN : ${{ secrets.GH_TOKEN }}
23+ WS_BACKEND_URL : ${{ secrets.WS_BACKEND_URL }}
24+ steps :
25+ - uses : actions/checkout@v3
26+ - name : Build and push Docker Image
27+ uses : mr-smithers-excellent/docker-build-push@v6
28+ with :
29+ image : ${{ secrets.DOCKER_HUB_USERNAME }}/atlp-pulse-bn
30+ tags : latest
31+ registry : docker.io
32+ username : ${{ secrets.DOCKER_HUB_USERNAME }}
33+ password : ${{ secrets.DOCKER_HUB_PASSWORD }}
34+ buildArgs : ' NODE_ENV=production, MONGO_PROD_DB="${{ secrets.MONGO_PROD_DB}}"'
35+ - name : Login to DO and spin up a new container
36+ uses : appleboy/ssh-action@master
37+ with :
38+ host : ${{ secrets.DO_HOST }}
39+ username : ${{ secrets.DO_USERNAME }}
40+ key : ${{ secrets.DO_KEY }}
41+ port : ${{ secrets.DO_PORT }}
42+ envs : MONGO_PROD_DB, REGISTER_FRONTEND_URL, REGISTER_ORG_FRONTEND_URL, NODE_ENV, FRONTEND_LINK, ADMIN_EMAIL, ADMIN_PASS, COORDINATOR_EMAIL, COORDINATOR_PASS, GH_TOKEN, WS_BACKEND_URL;
43+ script : |
44+ rm -f env
45+ echo ADMIN_EMAIL=${{ secrets.ADMIN_EMAIL }} >> env
46+ echo ADMIN_PASS=${{ secrets.ADMIN_PASS }} >> env
47+ echo COORDINATOR_EMAIL=${{ secrets.COORDINATOR_EMAIL }} >> env
48+ echo COORDINATOR_PASS=${{ secrets.COORDINATOR_PASS }} >> env
49+ echo FRONTEND_LINK=${{ secrets.FRONTEND_LINK }} >> env
50+ echo REGISTER_FRONTEND_URL=${{ secrets.REGISTER_FRONTEND_URL }} >> env
51+ echo REGISTER_ORG_FRONTEND_URL=${{ secrets.REGISTER_ORG_FRONTEND_URL }} >> env
52+ echo GH_TOKEN=${{ secrets.GH_TOKEN }} >> env
53+ echo MONGO_PROD_DB=${{ secrets.MONGO_PROD_DB }} >> env
54+ echo NODE_ENV=${{ secrets.NODE_ENV }} >> env
55+ cat env
56+ docker pull devpulse/atlp-pulse-bn:latest
57+ existing_container=$(docker ps | grep 4000)
58+ if [ $? -eq 0 ]; then
59+ echo "An existing container will be stopped"
60+ docker ps | grep 4000 | cut -f1 -d' ' | xargs docker stop
61+ else
62+ echo "No existing container found"
63+ fi
64+ docker_ps_out=$(docker run -p 4000:4000 -d -e ADMIN_EMAIL -e ADMIN_PASS -e COORDINATOR_EMAIL -e COORDINATOR_PASS -e FRONTEND_LINK -e REGISTER_FRONTEND_URL -e REGISTER_ORG_FRONTEND_URL -e GH_TOKEN -e MONGO_PROD_DB -e NODE_ENV -e WS_BACKEND_URL devpulse/atlp-pulse-bn:latest)
65+ if [ $? -eq 0 ]; then
66+ echo "New container spinned up successfully"
67+ else
68+ echo "There was an error creating a new container"
69+ echo "$docker_ps_out"
70+ fi
0 commit comments