Transfer Files Into and Out of a GitHub Actions RDP Session
A GitHub Actions RDP session has two file problems: it starts with nothing on it, and it ends by destroying itself. Every file you care about must travel in at the start and out before the finish. These are the routes that actually work — and the one habit that decides whether the session was useful or wasted.
🎥 Watch the full process in the video — note how everything in the session is treated as temporary
On a normal computer, file transfer is an afterthought. Here it is the central design problem, because the machine has two hard properties: about 14 GB of free disk when it wakes up, and a total wipe when the job ends. Plan the journey of your files — in, across, and out — before you start the run, and the method works smoothly. Skip the planning and the 6-hour limit will eventually collect something you needed.
The routes, rated honestly
🌐 Browser download inside the session — installers and files from your linksEasiest way in
💽 RDP drive sharing from your PC — your local drive appears in the sessionWindows client only
☁️ Upload to your cloud storage as you workBest way out
🗑️ Leave it on the desktop for laterDeleted at job end
👆 Getting files out matters more than getting them in — everything still on the machine when the job ends is simply gone.
1
The Golden Rule — Arrange the Exit First ⭐
Before the run starts, decide where the results will land: a folder in your own cloud storage that you can open in the session's browser. Then upload your output as you produce it, in small pieces, and confirm each upload shows as complete. The end of a session is a bad time to begin a large transfer — the job's deadline does not negotiate, and a half-uploaded file is the same as no file.
2
Getting Files In Through the Browser
The simplest route in: the runner has a fast data-centre connection, so downloading installers and files from official sites or from your own shared links inside the session is quick. This is how most software reaches the machine. Mind the two ceilings — roughly 14 GB of free disk, and the knowledge that everything downloaded is re-downloaded from zero on the next run. Keep a text list of your download links with the project, and each new session rebuilds in minutes.
3
Getting Files In Through RDP Drive Sharing
In Remote Desktop Connection on your PC, click Show Options, open the Local Resources tab
Under Local devices and resources, click More and tick the drive you want to share
Connect — your drive now appears inside the session in File Explorer, and files copy across in both directions
Small files can also ride the clipboard: copy on your PC, paste in the session
Note the limits: drive sharing is a feature of the Windows client (mobile apps offer less), and copies run at tunnel speed, not local speed
4
Getting Files Out Before the Wipe
Three exits, in order of reliability. Cloud upload from inside the session is fastest, because the runner's own connection does the work — upload early, verify the file opens from your phone or PC, then relax. Drive sharing copy-back works without any account, but the file travels down the free tunnel at its limited speed, so start large copies well before the end. And for genuine development work, the CI-native route exists too: a workflow can publish its outputs as build artifacts — the proper pattern for test results and built files, and one more sign of which uses the platform was designed for.
5
What Never To Do With Files Here
Never let the runner hold the only copy of anything — a document, a project, a download you cannot find again
Never park personal archives on it 'temporarily' — temporary here means hours, and the privacy reasoning in the safety guide applies to every file
Never begin a multi-gigabyte transfer in the session's last hour over the free tunnel; split it, or use the runner's fast connection to push it to cloud storage instead
If the job ends mid-upload, accept the loss and redo it — the machine and its disk no longer exist anywhere
🔴 Speed honesty: the free ngrok tunnel is the narrowest part of every route on this page. A multi-gigabyte file can consume a large share of your session just travelling. Keep transfers small and early — or accept that the method has stopped being practical for that job, which is useful information in itself.
🎥 Watch the Complete Process in the Video
Watch the video with file flow in mind — where things are downloaded, where they live, and what happens when the run ends.
Can I copy and paste files between my PC and the session?
Yes, for small files — the RDP clipboard carries them. For anything large or important it is unreliable, so use drive sharing from the Windows client or a cloud upload from inside the session instead, and always verify the copy arrived.
The job ended while my file was uploading. Can I recover it?
No. When the job ends, the virtual machine is destroyed along with its disk. A transfer that did not complete does not exist anywhere. This is exactly why results should be uploaded continuously during the session, not at the end.
Is there any storage that persists between runs?
None. No shared folder, no saved drive, no leftover files — every run starts from the same clean image. Anything you need in every session must be brought in every time, ideally from a saved list of links.
This guide is based on the Technical Anshu GitHub RDP video • Stuck on any step? Ask in the video comments — you will get a reply there 🙏