38 lines
		
	
	
		
			938 B
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			938 B
		
	
	
	
		
			YAML
		
	
	
	
	
	
| kind: pipeline
 | |
| type: docker
 | |
| name: deploy
 | |
| 
 | |
| steps:
 | |
| - name: deploy
 | |
|   image: ubuntu
 | |
|   environment:
 | |
|     HOST:
 | |
|       from_secret: host
 | |
|     USER:
 | |
|       from_secret: user
 | |
|     SSH_KEY:
 | |
|       from_secret: ssh_key
 | |
|     SRC: content
 | |
|   when:
 | |
|     branch:
 | |
|     - main
 | |
| 
 | |
|   commands:
 | |
|   # install stuff
 | |
|   - apt-get update -qq > /dev/null
 | |
|   - apt-get install ssh rsync -qq > /dev/null
 | |
| 
 | |
|   # configure ssh identity by importing ssh key from secrets and adding it to
 | |
|   # ssh-agent. also disable strict host key checking as this is the first time
 | |
|   # the ephemeral runner is connecting to the remote host
 | |
|   - eval $(ssh-agent -s)
 | |
|   - mkdir -p ~/.ssh
 | |
|   - echo "$SSH_KEY" > ~/.ssh/id_rsa
 | |
|   - chmod 600 ~/.ssh/id_rsa
 | |
|   - ssh-add
 | |
|   - echo "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
 | |
| 
 | |
|   # run operations on the remote host
 | |
|   - ssh "$${USER}@$${HOST}" "[[ ! -d ~/gemini/content ]] || rm -r ~/gemini/content"
 | |
|   - rsync -rP content "$${USER}@$${HOST}:gemini"
 |