1+ name : Build and Deploy Docker Image on Dev
2+
3+ on :
4+ push :
5+ branches :
6+ - dev-integrate
7+
8+ permissions :
9+ contents : read
10+
11+ jobs :
12+ build-and-push :
13+ runs-on : ubuntu-24.04
14+ steps :
15+ - name : Checkout repository
16+ uses : actions/checkout@v4
17+
18+ - name : Login to Docker Hub
19+ uses : docker/login-action@v3
20+ with :
21+ username : ${{ secrets.DOCKER_USERNAME }}
22+ password : ${{ secrets.DOCKER_PASSWORD }}
23+
24+ - name : Create $ENTITY_API_VERSION
25+ run : |
26+ export ENTITY_API_VERSION=$(tr -d "\n\r" < ../VERSION | xargs)
27+ echo "ENTITY_API_VERSION=$ENTITY_API_VERSION" >> $GITHUB_ENV
28+ working-directory : ./docker
29+
30+ - name : Make build script executable
31+ run : chmod +x ./docker-development.sh
32+ working-directory : ./docker
33+
34+ - name : Run the Docker build shell script
35+ run : ./docker-development.sh build
36+ working-directory : ./docker
37+
38+ - name : Tag the Docker Image
39+ # Alternatively we could use ${{ github.sha }} instead of latest
40+ run : docker image tag sennet/entity-api:$ENTITY_API_VERSION sennet/entity-api-dev:latest
41+ working-directory : ./docker
42+
43+ - name : Push the Docker image
44+ run : docker push sennet/entity-api-dev:latest
45+ working-directory : ./docker
46+
47+ deploy :
48+ runs-on : ubuntu-latest
49+ needs : build-and-push
50+ steps :
51+ - name : Whitelist GitHub Actions IP
52+ uses :
bbharathkumarreddy/[email protected] 53+ with :
54+ security-group-id : sg-0ddfcbe0a83a5266c
55+ action : whitelist
56+ port : 22
57+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
58+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
59+ aws-region : us-east-1
60+ - name : Deploy to Server via SSH
61+ uses : appleboy/ssh-action@v1
62+ with :
63+ host : ' ${{ secrets.REMOTE_HOST }}'
64+ username : ${{ secrets.REMOTE_USER }}
65+ key : ${{ secrets.SSH_PRIVATE_KEY }}
66+ use_insecure_cipher : true
67+ script : |
68+ # Change to codcc user on server
69+ sudo su - codcc -c "cd /opt/sennet/entity-api/docker/; git pull; docker pull sennet/entity-api-dev:latest; ./docker-development.sh down; ./docker-development.sh start;"
70+ - name : Remove GitHub Actions IP
71+ uses :
bbharathkumarreddy/[email protected] 72+ if : always()
73+ with :
74+ security-group-id : sg-0ddfcbe0a83a5266c
75+ action : remove
76+ port : 22
77+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
78+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
79+ aws-region : us-east-1
0 commit comments