mirror of
				https://github.com/easingthemes/ssh-deploy.git
				synced 2025-10-30 23:30:09 +08:00 
			
		
		
		
	Initial code commit
This commit is contained in:
		
							parent
							
								
									dc7ac312a6
								
							
						
					
					
						commit
						f8860c9bce
					
				
							
								
								
									
										27
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| FROM debian:9.5-slim | ||||
| 
 | ||||
| 
 | ||||
| # Update | ||||
| RUN apt-get update | ||||
| 
 | ||||
| 
 | ||||
| # Install packages | ||||
| RUN apt-get -yq install rsync openssh-client | ||||
| 
 | ||||
| 
 | ||||
| # Label | ||||
| LABEL "com.github.actions.name"="rsync deployments" | ||||
| LABEL "com.github.actions.description"="For deploying code to a webserver via rsync over ssh" | ||||
| LABEL "com.github.actions.icon"="truck" | ||||
| LABEL "com.github.actions.color"="yellow" | ||||
| 
 | ||||
| LABEL "repository"="http://github.com/contention/action-rsync-deploy" | ||||
| LABEL "homepage"="https://github.com/contention/action-rsync-deploy" | ||||
| LABEL "maintainer"="Contention <hello@contention.agency>" | ||||
| 
 | ||||
| 
 | ||||
| # Copy entrypoint | ||||
| ADD entrypoint.sh /entrypoint.sh | ||||
| RUN chmod +x /entrypoint.sh | ||||
| ENTRYPOINT ["/entrypoint.sh"] | ||||
| 
 | ||||
							
								
								
									
										42
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								README.md
									
									
									
									
									
								
							| @ -1,2 +1,40 @@ | ||||
| # rsync-deployments | ||||
| GitHub Action for deploying code via rsync over ssh | ||||
| # Contention rsync deployments over ssh | ||||
| 
 | ||||
| Deploys *everything* in `GITHUB_WORKSPACE` to a folder on a server via rsync over ssh.  | ||||
| 
 | ||||
| This action would usually follow a build/test action which leaves deployable code in `GITHUB_WORKSPACE`. | ||||
| 
 | ||||
| # Required SECRETs | ||||
| 
 | ||||
| This action needs a `DEPLOY_KEY` secret variable. This should be the private key part of an ssh key pair. The public key part should be added to the authorized_keys file on the server that receives the deployment. | ||||
| 
 | ||||
| # Required ARGs | ||||
| 
 | ||||
| This action can receive three `ARG`s: | ||||
| 
 | ||||
| 1. The first is for any initial/required rsync flags, eg: `-avzr --delete` | ||||
| 
 | ||||
| 2. The second is for any `--exclude` flags and directory pairs, eg: `--exclude .htaccess --exclude /uploads/`. Use "" if none required. | ||||
| 
 | ||||
| 3. The third is for the deployment target, and should be in the format: `[USER]@[HOST]:[PATH]` | ||||
| 
 | ||||
| # Example usage | ||||
| 
 | ||||
| ``` | ||||
| workflow "All pushes" { | ||||
|   on = "push" | ||||
|   resolves = ["Deploy to Staging"] | ||||
| } | ||||
| 
 | ||||
| action "Deploy to Staging" { | ||||
|   uses = "contention/action-rsync-deploy@master" | ||||
|   secrets = ["DEPLOY_KEY"] | ||||
|   args = ["-avzr --delete", "--exclude .htaccess --exclude /uploads/", "user@server.com:/srv/myapp/public/htdocs/"] | ||||
| }  | ||||
| ``` | ||||
| 
 | ||||
| ## Disclaimer | ||||
| 
 | ||||
| If you're using GitHub Actions, you'll probably already know that it's still in limited public beta, and GitHub advise against using Actions in production.  | ||||
| 
 | ||||
| So, check your keys. Check your deployment paths. And use at your own risk. | ||||
							
								
								
									
										13
									
								
								entrypoint.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								entrypoint.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,13 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| set -eu | ||||
| 
 | ||||
| # Set deploy key | ||||
| SSH_PATH="$HOME/.ssh" | ||||
| mkdir "$SSH_PATH" | ||||
| echo "$DEPLOY_KEY" > "$SSH_PATH/deploy_key" | ||||
| chmod 600 "$SSH_PATH/deploy_key" | ||||
| 
 | ||||
| 
 | ||||
| # Do deployment | ||||
| sh -c "rsync $1 -e 'ssh -i $SSH_PATH/deploy_key -o StrictHostKeyChecking=no' $2 $GITHUB_WORKSPACE/ $3" | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Barry Bell
						Barry Bell