11name : Login to Digital Ocean and create a directory
22
33on :
4- pull_request :
4+ push :
55 branches :
66 - develop
77
88jobs :
99 build-and-push :
1010 runs-on : ubuntu-latest
11+ env :
12+ BACKEND_URL : ${{ secrets.BACKEND_URL }}
13+ CLIENT_ID : ${{ secrets.CLIENT_ID }}
14+ PUSHER_KEY : ${{ secrets.PUSHER_KEY }}
15+ PUSHER_CLUSTER : ${{ secrets.PUSHER_CLUSTER }}
16+ REACT_APP_CLOUDINARY_UPLOAD_PRESET : ${{ secrets.REACT_APP_CLOUDINARY_UPLOAD_PRESET }}
17+ REACT_APP_CLOUDINARY_NAME : ${{ secrets.REACT_APP_CLOUDINARY_NAME }}
1118 steps :
12- - name : Login to docker
19+ - name : Checkout code
20+ uses : actions/checkout@v3
21+
22+ - name : Login to Docker Hub
1323 uses : docker/login-action@v2
1424 with :
1525 username : ${{ secrets.DOCKER_HUB_USERNAME }}
1626 password : ${{ secrets.DOCKER_HUB_PASSWORD }}
17- - name : Build and Push docker image
27+
28+ - name : Build and Push Docker Image
1829 uses : docker/build-push-action@v4
1930 with :
2031 push : true
2132 tags : ${{ secrets.DOCKER_HUB_USERNAME }}/atlp-devpulse-fn:latest
22- - name : Login to DO
33+
34+ - name : Login to Digital Ocean Server
2335 uses : appleboy/ssh-action@master
2436 with :
2537 host : ${{ secrets.DO_HOST }}
2638 username : ${{ secrets.DO_USERNAME }}
2739 key : ${{ secrets.DO_KEY }}
2840 port : ${{ secrets.DO_PORT }}
2941 script : |
30- docker pull devpulse/atlp-devpulse-fn:latest
31- docker ps | grep 4010 | cut -f1 -d' ' | xargs docker stop
32- docker run -p 4010:81 -d --add-host=devpulse-backend:161.35.150.208 devpulse/atlp-devpulse-fn:latest
42+ set -e # Exit on errors
43+ set -x # Debugging enabled
44+
45+ # Create .env file with required environment variables
46+ cat <<EOF > .env
47+ BACKEND_URL=${{ secrets.BACKEND_URL }}
48+ CLIENT_ID=${{ secrets.CLIENT_ID }}
49+ PUSHER_KEY=${{ secrets.PUSHER_KEY }}
50+ PUSHER_CLUSTER=${{ secrets.PUSHER_CLUSTER }}
51+ REACT_APP_CLOUDINARY_UPLOAD_PRESET=${{ secrets.REACT_APP_CLOUDINARY_UPLOAD_PRESET }}
52+ REACT_APP_CLOUDINARY_NAME=${{ secrets.REACT_APP_CLOUDINARY_NAME }}
53+ EOF
54+
55+ # Pull the latest Docker image
56+ docker pull ${{ secrets.DOCKER_HUB_USERNAME }}/atlp-devpulse-fn:latest
57+
58+ # Stop and remove any existing container on port 4008
59+ existing_container=$(docker ps -q --filter "publish=4008")
60+ if [ -n "$existing_container" ]; then
61+ docker stop "$existing_container"
62+ docker rm "$existing_container"
63+ fi
64+
65+ # Run the new container
66+ container_id=$(docker run -d \
67+ -p 4008:5000 \
68+ --env-file .env \
69+ ${{ secrets.DOCKER_HUB_USERNAME }}/atlp-devpulse-fn:latest)
70+
71+ echo "Container ID: $container_id"
0 commit comments