name: Deploy on: push: branches: - testing # Adjust the branch as needed jobs: build_and_push_images: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Docker login run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} ci.svs-tech.pro - name: Build and push Docker images run: | docker compose build docker compose push deploy_to_server_dev: needs: [build_and_push_images] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Configure SSH key run: | echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - name: Copy files to host uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} port: ${{ secrets.SSH_PORT }} source: "deploy/*,docker-compose.yml,nginx/nginx.conf" target: /opt/app/ - name: SSH into host and execute script uses: appleboy/ssh-action@master env: KASSA_ID: ${{ secrets.KASSA_ID_DEV }} KASSA_TOKEN: ${{ secrets.KASSA_TOKEN_DEV }} TICKET_DB: ${{ secrets.TICKET_DB_DEV }} DB_USER_: ${{ secrets.DB_USER_DEV }} DB_PASSWORD: ${{ secrets.DB_PASSWORD_DEV }} TERMINAL_ID: 1 with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} port: ${{ secrets.SSH_PORT }} envs: KASSA_ID, KASSA_TOKEN, TICKET_DB, DB_USER, DB_PASSWORD, TERMINAL_ID script: | cd /opt/app/ echo "restart container" docker-compose down docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} ci.svs-tech.pro docker-compose pull docker logout ci.svs-tech.pro docker-compose up -d