mirror of
				https://github.com/appleboy/ssh-action.git
				synced 2025-10-30 00:00:10 +08: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 | ||||
|         run: | | ||||
|           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…
	
		Reference in New Issue
	
	Block a user
	 Bo-Yi Wu
						Bo-Yi Wu