Quick Guide to Sync Code from GitHub via a Middle Machine and Deploy with Jenkins
This article explains how to obtain required permissions, add SSH keys, create a shell deployment script using git and rsync, and configure Jenkins to automatically deploy code from GitHub through a middle machine to a test server.
Recently the project code was migrated to Git, requiring changes to the test environment deployment; because the test server lacks direct Git access, a middle machine is used as a relay.
First, necessary permissions are obtained: test server ↔ middle machine, Jenkins server ↔ middle machine, and rsyncd.conf is configured on the test server to allow file transfer.
1. Add SSH Key – Install Git on the middle machine, generate an SSH key with ssh-keygen -t rsa, and add the public key to the Git platform.
2. Maintain Shell Script – Write a script (e.g., /home/xxx/shell/deploy.sh) that clones the repository ( git clone git-ssh-url /home/xxx/git/test/), pulls code, and uses rsync to sync files to the test server, optionally excluding specific configuration files.
The script accepts a branch name as a parameter (e.g., sh test qtest branch_001) to deploy a specific branch to the test server; it can be adapted for multiple test servers.
3. Jenkins Configuration – Add the necessary certificates and SSH sites so that the Jenkins server can reach the middle machine, then create a job that runs the deployment script.
After saving the Jenkins job, the environment can be deployed automatically.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
360 Quality & Efficiency
360 Quality & Efficiency focuses on seamlessly integrating quality and efficiency in R&D, sharing 360’s internal best practices with industry peers to foster collaboration among Chinese enterprises and drive greater efficiency value.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
