ci: refactor CI workflow and improve robustness (#320)
* ci: refactor CI workflow and improve robustness - Update GitHub Actions checkout step from version 1 to version 4 in multiple jobs within the CI workflow Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> * docs: improve non-interactive shell command handling - Add a Q&A section to the README with information on resolving 'command not found' errors for non-interactive shells - Provide a solution involving editing `/etc/bash.bashrc` to ensure commands are added to the path in non-interactive shells Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> * docs: improve documentation and CI robustness - Update acknowledgment for the interactive shell solution in the README.md file 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
							
								
									551964ebda
								
							
						
					
					
						commit
						f916346256
					
				
							
								
								
									
										12
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							@ -11,7 +11,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: checkout
 | 
			
		||||
        uses: actions/checkout@v1
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: correct password but wrong key
 | 
			
		||||
        uses: ./
 | 
			
		||||
@ -143,7 +143,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: checkout
 | 
			
		||||
        uses: actions/checkout@v1
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: pass environment
 | 
			
		||||
        uses: ./
 | 
			
		||||
@ -219,7 +219,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: checkout
 | 
			
		||||
        uses: actions/checkout@v1
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: clone private repository
 | 
			
		||||
        uses: ./
 | 
			
		||||
@ -238,7 +238,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: checkout
 | 
			
		||||
        uses: actions/checkout@v1
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: login GitHub Container Registry
 | 
			
		||||
        uses: ./
 | 
			
		||||
@ -267,7 +267,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: checkout
 | 
			
		||||
        uses: actions/checkout@v1
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: switch to root user
 | 
			
		||||
        uses: ./
 | 
			
		||||
@ -288,7 +288,7 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: checkout
 | 
			
		||||
        uses: actions/checkout@v1
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Set up WARP
 | 
			
		||||
        uses: fscarmen/warp-on-actions@v1.1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										23
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								README.md
									
									
									
									
									
								
							@ -395,6 +395,29 @@ Now you can adjust you config:
 | 
			
		||||
        ls -al
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Q&A
 | 
			
		||||
 | 
			
		||||
### Command not found (npm or other command)
 | 
			
		||||
 | 
			
		||||
See the [issue comment](https://github.com/appleboy/ssh-action/issues/31#issuecomment-1006565847) about interactive vs non interactive shell. Thanks @kocyigityunus for the solution.
 | 
			
		||||
 | 
			
		||||
Basically, if you are running a command in a non interactive shell, like ssh-action, on many linux distros,
 | 
			
		||||
 | 
			
		||||
`/etc/bash.bashrc` file has a specific command that returns only, so some of the files didn't run and some specific commands doesn't add to path,
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
# /etc/bash.bashrc
 | 
			
		||||
# System-wide .bashrc file for interactive bash(1) shells.
 | 
			
		||||
 | 
			
		||||
# To enable the settings / commands in this file for login shells as well,
 | 
			
		||||
# this file has to be sourced in /etc/profile.
 | 
			
		||||
 | 
			
		||||
# If not running interactively, don't do anything
 | 
			
		||||
[ -z "$PS1" ] && return`
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
just comment out the line that returns early and everything should work fine, or you can use the real paths of the commands that you would like to use.
 | 
			
		||||
 | 
			
		||||
## Contributing
 | 
			
		||||
 | 
			
		||||
We would love for you to contribute to `appleboy/ssh-action`, pull requests are welcome!
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user