mirror of
				https://github.com/appleboy/ssh-action.git
				synced 2025-10-31 20:13:53 +00:00 
			
		
		
		
	ci: add environment variable handling in GitHub Actions
- Add a new job `testing-with-env` to the GitHub Actions workflow - Add steps to set up environment variables for public and private SSH keys - Add a step to create a new SSH server using Docker - Add a step to test the SSH connection using the `id_ed25519` key - Add a step to pass a single environment variable to the SSH action - Add a step to pass multiple environment variables to the SSH action - Add a step to use a custom format for environment variables - Add a step to pass all environment variables to the SSH action Signed-off-by: appleboy <appleboy.tw@gmail.com>
This commit is contained in:
		
							parent
							
								
									fc1c1fce51
								
							
						
					
					
						commit
						f0e5a23d53
					
				
							
								
								
									
										123
									
								
								.github/workflows/ssh-server.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										123
									
								
								.github/workflows/ssh-server.yml
									
									
									
									
										vendored
									
									
								
							| @ -337,3 +337,126 @@ jobs: | ||||
|           script: | | ||||
|             whoami | ||||
|             ls -al | ||||
| 
 | ||||
|   testing-with-env: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout code | ||||
|         uses: actions/checkout@v4 | ||||
| 
 | ||||
|       - name: add public key to env | ||||
|         run: | | ||||
|           echo "PUBLIC_KEY<<EOF" >> $GITHUB_ENV | ||||
|           cat testdata/.ssh/id_ed25519.pub >> $GITHUB_ENV | ||||
|           echo "EOF" >> $GITHUB_ENV | ||||
|           echo "======= public key =========" | ||||
|           cat testdata/.ssh/id_ed25519.pub | ||||
|           echo "============================" | ||||
|           echo "PRIVATE_KEY<<EOF" >> $GITHUB_ENV | ||||
|           cat testdata/.ssh/id_ed25519 >> $GITHUB_ENV | ||||
|           echo "EOF" >> $GITHUB_ENV | ||||
|           echo "======= private key =========" | ||||
|           cat testdata/.ssh/id_ed25519 | ||||
|           echo "============================" | ||||
| 
 | ||||
|       - name: create new ssh server | ||||
|         run: | | ||||
|           docker run -d \ | ||||
|           --name=openssh-server \ | ||||
|           --hostname=openssh-server \ | ||||
|           -p 2222:2222 \ | ||||
|           -e PUBLIC_KEY="${{ env.PUBLIC_KEY }}" \ | ||||
|           -e SUDO_ACCESS=false \ | ||||
|           -e PASSWORD_ACCESS=true  \ | ||||
|           -e USER_PASSWORD=password  \ | ||||
|           -e USER_NAME=linuxserver.io \ | ||||
|           --restart unless-stopped \ | ||||
|           lscr.io/linuxserver/openssh-server:latest | ||||
|           docker exec openssh-server sh -c "hostname -i" > ip.txt | ||||
|           echo "REMOTE_HOST<<EOF" >> $GITHUB_ENV | ||||
|           cat ip.txt >> $GITHUB_ENV | ||||
|           echo "EOF" >> $GITHUB_ENV | ||||
|           echo "======= container ip address =========" | ||||
|           cat ip.txt | ||||
|           echo "======================================" | ||||
|           sleep 2 | ||||
| 
 | ||||
|       - name: testing id_ed25519 key | ||||
|         uses: appleboy/ssh-action@v1.0.3 | ||||
|         with: | ||||
|           host: ${{ env.REMOTE_HOST }} | ||||
|           username: linuxserver.io | ||||
|           key: ${{ env.PRIVATE_KEY }} | ||||
|           port: 2222 | ||||
|           script: | | ||||
|             whoami | ||||
|             ls -al | ||||
| 
 | ||||
|       - name: pass environment | ||||
|         uses: appleboy/ssh-action@v1.0.3 | ||||
|         env: | ||||
|           FOO: "BAR" | ||||
|         with: | ||||
|           host: ${{ env.REMOTE_HOST }} | ||||
|           username: linuxserver.io | ||||
|           key: ${{ env.PRIVATE_KEY }} | ||||
|           port: 2222 | ||||
|           envs: FOO | ||||
|           script: | | ||||
|             echo "I am $FOO, thanks" | ||||
|             echo "I am $BAR, thanks" | ||||
| 
 | ||||
|       - name: pass multiple environment | ||||
|         uses: appleboy/ssh-action@v1.0.3 | ||||
|         env: | ||||
|           FOO: "BAR" | ||||
|           BAR: "FOO" | ||||
|           SHA: ${{ github.sha }} | ||||
|           PORT: ${{ secrets.PORT }} | ||||
|         with: | ||||
|           host: ${{ env.REMOTE_HOST }} | ||||
|           username: linuxserver.io | ||||
|           key: ${{ env.PRIVATE_KEY }} | ||||
|           port: 2222 | ||||
|           envs: FOO,BAR,SHA,PORT | ||||
|           script: | | ||||
|             echo "I am $FOO, thanks" | ||||
|             echo "I am $BAR, thanks" | ||||
|             echo "sha: $SHA" | ||||
|             echo "port: $PORT" | ||||
|             sh test.sh | ||||
| 
 | ||||
|       - name: custom envs format | ||||
|         uses: appleboy/ssh-action@v1.0.3 | ||||
|         env: | ||||
|           FOO: "BAR" | ||||
|           AAA: "BBB" | ||||
|         with: | ||||
|           host: ${{ env.REMOTE_HOST }} | ||||
|           username: linuxserver.io | ||||
|           key: ${{ env.PRIVATE_KEY }} | ||||
|           port: 2222 | ||||
|           envs: FOO,BAR,AAA | ||||
|           envs_format: export TEST_{NAME}={VALUE} | ||||
|           script: | | ||||
|             echo "I am $TEST_FOO, thanks" | ||||
|             echo "I am $TEST_BAR, thanks" | ||||
|             echo "I am $BAR, thanks" | ||||
|             echo "I am $TEST_AAA, thanks" | ||||
| 
 | ||||
|       - name: pass all ENV variables to script | ||||
|         uses: appleboy/ssh-action@v1.0.3 | ||||
|         env: | ||||
|           INPUT_FOO: "BAR" | ||||
|           INPUT_AAA: "BBB" | ||||
|         with: | ||||
|           host: ${{ env.REMOTE_HOST }} | ||||
|           username: linuxserver.io | ||||
|           key: ${{ env.PRIVATE_KEY }} | ||||
|           port: 2222 | ||||
|           allenvs: true | ||||
|           script: | | ||||
|             echo "I am $INPUT_FOO, thanks" | ||||
|             echo "I am $INPUT_AAA, thanks" | ||||
|             echo "$GITHUB_BASE_REF" | ||||
|             echo "$GITHUB_REF" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user