mirror of
				https://github.com/SamKirkland/FTP-Deploy-Action.git
				synced 2025-10-31 16:03:58 +00:00 
			
		
		
		
	Initial commit
This commit is contained in:
		
							parent
							
								
									b6d9340796
								
							
						
					
					
						commit
						d1fda48913
					
				
							
								
								
									
										17
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| FROM alpine:latest | ||||
| 
 | ||||
| LABEL version="1.0.0" | ||||
| LABEL repository="https://github.com/SamKirkland/FTP-Deploy-Action" | ||||
| LABEL homepage="https://github.com/SamKirkland/FTP-Deploy-Action" | ||||
| LABEL maintainer="Sam Kirkland <FTP-Deploy-Action@samkirkland.com>" | ||||
| 
 | ||||
| LABEL "com.github.actions.name"="FTP Deploy Action" | ||||
| LABEL "com.github.actions.description"="Deploy your website via FTP" | ||||
| LABEL "com.github.actions.icon"="upload-cloud" | ||||
| LABEL "com.github.actions.color"="orange" | ||||
| 
 | ||||
| RUN apk add lftp | ||||
| 
 | ||||
| COPY entrypoint.sh /entrypoint.sh | ||||
| RUN chmod 777 entrypoint.sh | ||||
| ENTRYPOINT ["/entrypoint.sh"] | ||||
							
								
								
									
										73
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,73 @@ | ||||
| # FTP Deploy for GitHub Actions | ||||
| 
 | ||||
| Automate deploying websites and more with this GitHub action. | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| ### Usage | ||||
| ``` | ||||
| action "FTP-Deploy-Action" { | ||||
|    uses = "SamKirkland/FTP-Deploy-Action@master" | ||||
|    secrets = ["FTP_USERNAME", "FTP_PASSWORD", "FTP_SERVER"] | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| 1. Select the repository you want to add the action to | ||||
| 2. Select the actions tab `(currently only for beta testers)` | ||||
| 3. Select `Create a new workflow` | ||||
| 4. Select `Edit new file` | ||||
| 5. Paste the above code into the bottom of the file | ||||
| 6. Go back to the `Visual editor` | ||||
| 7. Click edit on the `FTP-Deploy-Action` | ||||
| 8. In the `secrets` section add the required params | ||||
|    * FTP_USERNAME | ||||
|    * FTP_PASSWORD | ||||
|    * FTP_SERVER | ||||
|    * (see optional settings below) | ||||
| 
 | ||||
| ### Settings | ||||
| - Options | ||||
|    - __FTP Username__: ${FTP_USERNAME} | ||||
|    - __FTP Password__: ${FTP_PASSWORD} | ||||
|    - __FTP Server__: ${FTP_SERVER} | ||||
|    - __(Optional) Local Dir__: ${LOCAL_DIR} | ||||
|    - __(Optional) Remote Dir__: ${REMOTE_DIR} | ||||
| - Set actions by editing the action then adding them in the `secrets` section: | ||||
|   -  | ||||
| 
 | ||||
| 
 | ||||
| ### Explination of steps | ||||
| - This action is triggered by a `event` on your repo | ||||
| - A docker image based on `mwienk/docker-lftp` is spun up on github servers | ||||
| - The docker container compresses your code into a tar.gz file | ||||
| - The file is then uploaded to the remote server | ||||
| - The file is then un-zipped | ||||
| 
 | ||||
| ### Debugging locally | ||||
| ###### Instructions for windows | ||||
| - Install docker for windows | ||||
| - Open powershell | ||||
| - Navigate to the repo folder | ||||
| - Run `docker build --tag action .` | ||||
| - (Optional) This step is only required when editing entrypoint.sh due to windows editors saving the file with windows line breaks instead of linux line breaks | ||||
|   - Download http://dos2unix.sourceforge.net/ | ||||
|   - In another powershell window nagivate to the dos2unix folder /bin | ||||
|   - Run this command every time you modify entrypoint.sh `.\dos2unix.exe "{FULL_PATH_TO_REPO\entrypoint.sh}"` | ||||
| - Run `docker run action` | ||||
|    | ||||
| ###### Instructions for linux | ||||
| - Please submit a PR for linux instructions :) | ||||
| 
 | ||||
| 
 | ||||
| ### ToDo | ||||
| - More config options | ||||
|    - Deploy Mode: ${DEPLOY_MODE} `full`|`diffs` | ||||
| - SSH support | ||||
| - Switch from lftp to git | ||||
| 
 | ||||
| Pull Requests Welcome! | ||||
| 
 | ||||
| ### License | ||||
| ---- | ||||
| 
 | ||||
| MIT | ||||
							
								
								
									
										15
									
								
								entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # "to avoid continuing when errors or undefined variables are present" | ||||
| set -eu | ||||
| 
 | ||||
| echo "Starting FTP Deploy" | ||||
| echo "Uploading files..." | ||||
| 
 | ||||
| WDEFAULT_LOCAL_DIR=${LOCAL_DIR:-"."} | ||||
| WDEFAULT_REMOTE_DIR=${REMOTE_DIR:-"."} | ||||
| 
 | ||||
| lftp $FTP_SERVER -u $FTP_USERNAME,$FTP_PASSWORD -e "set ftp:ssl-allow no; mirror -R $WDEFAULT_LOCAL_DIR $WDEFAULT_REMOTE_DIR; quit" | ||||
| 
 | ||||
| echo "FTP Deploy Complete" | ||||
| exit 0 | ||||
							
								
								
									
										
											BIN
										
									
								
								images/action.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								images/action.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 15 KiB | 
							
								
								
									
										
											BIN
										
									
								
								images/env.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								images/env.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 17 KiB | 
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user