.env # "> .env # "> .env # ">
# name: Build and Deploy
#
# on:
# push:
# branches:
# - main
# - dev
# - dev-be
# - feature-be-#51
# jobs:
# build_and_deploy:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Docker Hub login
# uses: docker/login-action@v1
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_PASSWORD }}
# - name: Build and Push Docker images
# run: |
# docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/corinee-server -f ./dockerfile-server .
# docker push ${{ secrets.DOCKERHUB_USERNAME }}/corinee-server
# docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/corinee-client -f ./dockerfile-client .
# docker push ${{ secrets.DOCKERHUB_USERNAME }}/corinee-client
# - name: make deploy environment
# run: |
# echo "${{secrets.DEPLOY_ENV}}" > .env
# - name: Send files & deploy script
# uses: appleboy/scp-action@master
# with:
# host: ${{ secrets.SSH_HOST }}
# username: ${{ secrets.SSH_USERNAME }}
# password: ${{ secrets.SSH_PASSWORD }}
# port: ${{ secrets.SSH_PORT }}
# source: ${{ secrets.DEPLOY_FILES }}
# target: /corinee
# overwrite: true
# - name: Docker Container run
# uses: appleboy/ssh-action@master
# with:
# host: ${{ secrets.SSH_HOST }}
# username: ${{ secrets.SSH_USERNAME }}
# password: ${{ secrets.SSH_PASSWORD }}
# port: ${{ secrets.SSH_PORT }}
# script: |
# docker image rm -f ${{ secrets.DOCKERHUB_USERNAME }}/corinee-server || true
# docker image rm -f ${{ secrets.DOCKERHUB_USERNAME }}/corinee-client || true
# docker pull ${{ secrets.DOCKERHUB_USERNAME }}/corinee-server
# docker pull ${{ secrets.DOCKERHUB_USERNAME }}/corinee-client
# cd /corinee
# docker-compose down --rmi all
# docker-compose up -d
# rm -rf .env docker-compose.yml
# - name: Generate Error Report
# if: failure()
# run: |
# echo "Deployment Report" > report.txt
# echo "===================" >> report.txt
# echo "Commit SHA: ${{ github.sha }}" >> report.txt
# echo "Branch: ${{ github.ref }}" >> report.txt
# echo "Deployment Status: Failed" >> report.txt
# echo "Error Details: ${{ job.status }}" >> report.txt
# echo "===================" >> report.txt
# cat report.txt
# - name: Upload Error Report
# if: failure()
# uses: actions/upload-artifact@v3
# with:
# name: deployment-error-report
# path: report.txt