name: Deploy Dev (Fixed) on: push: branches: [ Feature/general/docker ] env: IMAGE_NAME: gozareshgir-api SERVER_PATH: ~/apps/test-dev/backend-api jobs: build-and-deploy: # ✅ self-hosted runner runs-on: [self-hosted, ubuntu-latest] steps: # ✅ Fix DNS - IP واقعی Gitea! - name: Fix Gitea DNS run: | echo "172.21.0.4 server" | sudo tee -a /etc/hosts echo "✅ Gitea server resolved to 172.21.0.4" ping -c 1 server - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 1 token: ${{ secrets.GITEA_PAT }} # Personal Access Token - name: Login to Docker Registry uses: docker/login-action@v3 with: registry: ${{ secrets.DOCKER_REGISTRY }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and Push uses: docker/build-push-action@v5 with: context: . push: true tags: ${{ secrets.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:dev - name: Deploy to Test Server uses: appleboy/ssh-action@v1.0.3 env: DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} APP_VERSION: dev with: host: ${{ secrets.SSH_HOST_TEST }} username: ${{ secrets.SSH_USERNAME_TEST }} key: ${{ secrets.SSH_KEY_TEST }} port: 22 envs: DOCKER_REGISTRY,DOCKER_USERNAME,DOCKER_PASSWORD,APP_VERSION script: | cd ${{ env.SERVER_PATH }} echo "$DOCKER_PASSWORD" | docker login $DOCKER_REGISTRY -u $DOCKER_USERNAME --password-stdin export APP_VERSION=$APP_VERSION docker compose pull docker compose up -d --remove-orphans docker image prune -f