happybell80 8efdd2a590 Add detailed debugging steps for rsync permission issue
- Test directory access and permissions
- Check user identity and current directory
- Create target directory if not exists
- Add verbose SSH logging (-vvv) to rsync
- Troubleshoot permission denied error step by step

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-07 23:14:44 +09:00

54 lines
1.6 KiB
YAML

name: Deploy to NAS (rsync)
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup SSH key
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.NAS_SSH_KEY_ADMIN }}
- name: Check SSH key loaded
run: ssh-add -l
- name: Add NAS host to known_hosts
run: |
mkdir -p ~/.ssh
ssh-keyscan -p ${{ secrets.NAS_PORT }} ${{ secrets.NAS_HOST }} >> ~/.ssh/known_hosts
- name: Test SSH connection
run: |
ssh -o StrictHostKeyChecking=no -p ${{ secrets.NAS_PORT }} \
${{ secrets.NAS_USER }}@${{ secrets.NAS_HOST }} echo "SSH connection successful"
- name: Test directory access
run: |
ssh -p ${{ secrets.NAS_PORT }} admin@${{ secrets.NAS_HOST }} \
"ls -la /volume1/homes/admin/ && whoami && pwd"
- name: Create target directory if not exists
run: |
ssh -p ${{ secrets.NAS_PORT }} admin@${{ secrets.NAS_HOST }} \
"mkdir -p /volume1/homes/admin/nginx-infra && ls -la /volume1/homes/admin/nginx-infra"
- name: Rsync to NAS (with verbose SSH)
run: |
rsync -avz -e "ssh -vvv -p ${{ secrets.NAS_PORT }}" ./ \
admin@${{ secrets.NAS_HOST }}:/volume1/homes/admin/nginx-infra/
- name: Remote docker-compose up
run: |
ssh -p ${{ secrets.NAS_PORT }} ${{ secrets.NAS_USER }}@${{ secrets.NAS_HOST }} << 'EOF'
cd /volume1/homes/admin/nginx-infra
docker-compose up -d --build
EOF