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 | # Contention rsync deployments over ssh | ||||||
| GitHub Action for deploying code via rsync 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