name: Deploy via SSH on push run-name: ${{ gitea.actor }} is deploying via SSH on: push: branches: - master jobs: deploy-via-ssh: runs-on: ubuntu-latest steps: - name: Check out repository code uses: actions/checkout@v4 - name: Install SSH client and Git run: | sudo apt-get update sudo apt-get install -y openssh-client git - name: Configure SSH run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" | tr -d '\r' > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa echo -e "Host *\n\tStrictHostKeyChecking no\n" > ~/.ssh/config - name: Deploy via SSH run: | ssh -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} << 'EOF' cd ${{ secrets.PROJECT_PATH }} echo "Pulling latest changes from main..." git pull origin master echo "Restarting Docker Compose services..." docker compose down docker compose up -d --build echo "Deployment completed!" EOF - run: echo "The deployment job has finished with status ${{ job.status }}."