mirror of
				https://github.com/appleboy/ssh-action.git
				synced 2025-10-31 20:03:51 +00:00 
			
		
		
		
	ci: add SSH testing job to GitHub Actions workflow (#355)
* ci: add SSH testing job to GitHub Actions workflow https://github.com/appleboy/ssh-action/issues/335#issuecomment-2372414496 - Add a new job `testing-script-stop` to the GitHub Actions workflow - Set up an SSH server using a Docker container within the new job - Capture the container's IP address and store it in the GitHub environment - Add a step to run an SSH command with stdout capture - Include a script to test conditional logic within the SSH command - Add a step to check and print the captured stdout from the SSH command Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> * ci: improve GitHub Actions workflow with conditional checks - Add conditional checks in GitHub Actions workflow to handle 'True' and 'False' outputs Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> * ci: standardize naming and validation of stdout steps - Rename `stdout` step to `stdout01` in the GitHub Actions workflow - Rename `check stdout` step to `check stdout 01` - Update references to `stdout` to `stdout01` in echo and grep commands - Add a new step `stdout02` for SSH command execution with stdout capture - Add a new step `check stdout 02` to validate the output of `stdout02` step Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> --------- Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
		
							parent
							
								
									102c0d2e5f
								
							
						
					
					
						commit
						66aa4d343b
					
				
							
								
								
									
										87
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										87
									
								
								.github/workflows/main.yml
									
									
									
									
										vendored
									
									
								
							| @ -594,3 +594,90 @@ jobs: | |||||||
|       - name: check stdout |       - name: check stdout | ||||||
|         run: | |         run: | | ||||||
|           echo "stdout: ${{ steps.stdout.outputs.stdout }}" |           echo "stdout: ${{ steps.stdout.outputs.stdout }}" | ||||||
|  | 
 | ||||||
|  |   testing-script-stop: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout code | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  | 
 | ||||||
|  |       - name: create new ssh server | ||||||
|  |         run: | | ||||||
|  |           docker run -d \ | ||||||
|  |           --name=openssh-server \ | ||||||
|  |           --hostname=openssh-server \ | ||||||
|  |           -p 2222:2222 \ | ||||||
|  |           -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 | ||||||
|  | 
 | ||||||
|  |       - id: stdout01 | ||||||
|  |         name: ssh command with stdout 01 | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           host: ${{ env.REMOTE_HOST }} | ||||||
|  |           username: linuxserver.io | ||||||
|  |           password: password | ||||||
|  |           port: 2222 | ||||||
|  |           capture_stdout: true | ||||||
|  |           script: | | ||||||
|  |             #!/usr/bin/env bash | ||||||
|  |             set -e | ||||||
|  |             echo "TMP TESTING IF" | ||||||
|  |             if [[ "2" == "1" ]]; then | ||||||
|  |               echo "True" | ||||||
|  |             else | ||||||
|  |               echo "False" | ||||||
|  |             fi | ||||||
|  | 
 | ||||||
|  |       - name: check stdout 01 | ||||||
|  |         run: | | ||||||
|  |           echo "stdout: ${{ steps.stdout01.outputs.stdout }}" | ||||||
|  |           if echo "${{ steps.stdout01.outputs.stdout }}" | grep -q "True"; then | ||||||
|  |             echo "Output contains 'True'" | ||||||
|  |             exit 1 | ||||||
|  |           fi | ||||||
|  |           if echo "${{ steps.stdout01.outputs.stdout }}" | grep -q "False"; then | ||||||
|  |             echo "Output contains 'False'" | ||||||
|  |           fi | ||||||
|  | 
 | ||||||
|  |       - id: stdout02 | ||||||
|  |         name: ssh command with stdout 01 | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           host: ${{ env.REMOTE_HOST }} | ||||||
|  |           username: linuxserver.io | ||||||
|  |           password: password | ||||||
|  |           port: 2222 | ||||||
|  |           capture_stdout: true | ||||||
|  |           script: | | ||||||
|  |             #!/usr/bin/env bash | ||||||
|  |             set -e | ||||||
|  |             echo "TMP TESTING IF" | ||||||
|  |             if [[ "1" == "1" ]]; then | ||||||
|  |               echo "True" | ||||||
|  |             else | ||||||
|  |               echo "False" | ||||||
|  |             fi | ||||||
|  | 
 | ||||||
|  |       - name: check stdout 02 | ||||||
|  |         run: | | ||||||
|  |           echo "stdout: ${{ steps.stdout02.outputs.stdout }}" | ||||||
|  |           if echo "${{ steps.stdout02.outputs.stdout }}" | grep -q "False"; then | ||||||
|  |             echo "Output contains 'False'" | ||||||
|  |             exit 1 | ||||||
|  |           fi | ||||||
|  |           if echo "${{ steps.stdout02.outputs.stdout }}" | grep -q "True"; then | ||||||
|  |             echo "Output contains 'True'" | ||||||
|  |           fi | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user