name: Deploy to Pi on: workflow_dispatch: push: branches: [main, master] paths: - 'src/**' - 'package.json' - 'Dockerfile' - 'deploy/**' jobs: test: name: Run Tests First uses: ./.github/workflows/test.yml deploy: name: Deploy to Raspberry Pi Nodes runs-on: ubuntu-latest needs: test if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v4 - name: Setup SSH key run: | mkdir -p ~/.ssh echo "${{ secrets.PI_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan -H ${{ secrets.PI_HOST_1 }} >> ~/.ssh/known_hosts 2>/dev/null || true ssh-keyscan -H ${{ secrets.PI_HOST_2 }} >> ~/.ssh/known_hosts 2>/dev/null || true ssh-keyscan -H ${{ secrets.PI_HOST_3 }} >> ~/.ssh/known_hosts 2>/dev/null || true - name: Create .env for deployment run: | cat > .env <