This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI/CD Direct Deploy to Server | |
| on: | |
| push: | |
| branches: | |
| - master | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| - name: Deploy to server via SSH | |
| uses: appleboy/ssh-action@v1.1.0 | |
| with: | |
| host: ${{ secrets.SERVER_HOST }} | |
| username: ${{ secrets.SERVER_USER }} | |
| key: ${{ secrets.SERVER_SSH_KEY }} | |
| script: | | |
| set -e | |
| APP_NAME=iiitt-new-dev | |
| IMAGE_NAME=${APP_NAME} | |
| COMMIT_SHA=${GITHUB_SHA::7} | |
| SERVER_PORT=4908 | |
| DOCKER_PORT=3000 | |
| cd /var/www/html/$APP_NAME || exit 1 | |
| echo "Updating repository..." | |
| git fetch origin master | |
| git reset --hard origin/master | |
| if [ "$(docker ps -q -f name=$APP_NAME)" ]; then | |
| echo "Stopping and removing current container..." | |
| docker stop $APP_NAME || true | |
| docker rm $APP_NAME || true | |
| fi | |
| echo "Building new image..." | |
| docker build -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${COMMIT_SHA} . | |
| echo "Running new container..." | |
| docker run -d --name $APP_NAME -p ${SERVER_PORT}:${DOCKER_PORT} ${IMAGE_NAME}:latest | |
| echo "Cleaning up unused images..." | |
| docker image prune -f --filter "dangling=true" |