Since their release, GitHub actions are on my long-term todo list for increasing automation of my workflows. Thanks to DEVs GitHub Actions Hackatho...
For further actions, you may consider blocking this person and/or reporting abuse
Just one thing to keep in mind:
FTP is not build to be secure.
FTP is sending usernames and passwords in clear text through the network.
FTP is vulnerable to sniffing, spoofing, and brute force attacks, among other basic attack methods.
SFTP should be used or SSH instead.
Totally agree, thank you for this addition.
git-ftp
supports FTP, FTPS and SFTP, you just have to specify the protocol at the beginning of the url, e.g.:Added a corresponding security hint in the article. Thanks again 😊
You should go a step further and let the building (and testing) also be done via github actions. I've been doing that for a while now and it feels great knowing all i have to do is push my code (and or/release depending on the repo) for it to spin up, do its thing and deploy it to ftp.
Of course, this should be the logical next step. Do you also use GitHub actions for that? How do you handle failed tests?
I do use GH actions for that yes. And if a test fails i get notified via email and it will simple stop deploying :)
Cool! I looked through your GitHub repos and found one of your yml files - I will take it as a starting point to increase automation of my own workflows - thanks again 😊
Yeah i think all that is missing from that repo is the testing part. Just do a command to test and if it fails it should stop all together. The git hard -reset command is there because i had an issue earlier with the ftp plugin also uploading files i don't want to my FTP. Not sure if that is still needed. No problem and have fun with it!
Thank you for sharing your workflow 👍🏻
Nice, 😄, In some cases I upload to
Godaddy
windows hosting manually usingFile Zilla FTP client
. So you mean using your workflow I can automate that ? Also how can I mention theFTP
default port number ?Exactly, you can automate that. The port number is appended to the server url, divided by colon, e.g.
ftps://your.ftp-server.com:21
.I tried to use FTP deploy but it did not fit for my needs. I think it is OK for few files but when you need to move thousands of small files it is way too slow. FTP's weakness is that it transfers each file individually. Perhaps if you could have process that zips the directory then FTP transfers to the Zip and then some other process on the server unzip's it... But then why not just hooking directly to Githooks or something alike?
Oh I know exactly, what you mean! If only FTP had some kind of built in transport compression/bundleing, it would be so much faster.
The good thing about Git-ftp is, that you only have to upload all your files once. Every following upload will only contain the files that changed since the last upload (which I assume to be not that much files). You can even
git ftp catchup
, if your files are already existing on your server. But I agree, that there are some limitations at some point. So it depends on the project, I guess.If you don't increase the fetch depth you'll get screwed here on more than a few commits. You'll end up reloading your whole repo not just the changes.
Yes you're right. At least the last 2 checkins are required in order to determine differences, so you can either increase the fetch depth or deploy on every commit. I'm not sure if increasing the fetch depth has any side effects though...
Whatever they are I'd bet they're worth not risking 2hr deploys by accident if you commit a few too many times before pushing.
Will this approach work for WordPress websites?
It will. However the first commit could take some time since all files have to be uploaded.