Compare commits
	
		
			8 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 029f5b4aee | ||
|   | d134a26a1f | ||
|   | 2451745138 | ||
|   | 1f3c338936 | ||
|   | 8f94919856 | ||
|   | 2344d97573 | ||
|   | b9f6bf6223 | ||
|   | 4330a1ea48 | 
							
								
								
									
										429
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										429
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -6,129 +6,128 @@ env: | ||||
|   BAR: "FOO" | ||||
|  | ||||
| jobs: | ||||
|  | ||||
|   testing01: | ||||
|     name: default flag testing | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: checkout | ||||
|       uses: actions/checkout@v1 | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v1 | ||||
|  | ||||
|     - name: correct password but wrong key | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         password: ${{ secrets.PASSWORD }} | ||||
|         key: "1234" | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script: whoami | ||||
|       - name: correct password but wrong key | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           password: ${{ secrets.PASSWORD }} | ||||
|           key: "1234" | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script: whoami | ||||
|  | ||||
|     - name: wrong password but correct key | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         password: "abcdef" | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script: whoami | ||||
|       - name: wrong password but correct key | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           password: "abcdef" | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script: whoami | ||||
|  | ||||
|     - name: executing remote ssh commands using password | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         password: ${{ secrets.PASSWORD }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script: whoami | ||||
|       - name: executing remote ssh commands using password | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           password: ${{ secrets.PASSWORD }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script: whoami | ||||
|  | ||||
|     - name: executing remote ssh commands using ssh key | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script: whoami | ||||
|       - name: executing remote ssh commands using ssh key | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script: whoami | ||||
|  | ||||
|     - name: multiple command | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script: | | ||||
|           whoami | ||||
|           ls -al | ||||
|       - name: multiple command | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script: | | ||||
|             whoami | ||||
|             ls -al | ||||
|  | ||||
|     - name: stop script if command error | ||||
|       uses: ./ | ||||
|       continue-on-error: true | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script_stop: true | ||||
|         sync: true | ||||
|         debug: true | ||||
|         script: | | ||||
|           mkdir abc/def | ||||
|           ls -al | ||||
|       - name: stop script if command error | ||||
|         uses: ./ | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script_stop: true | ||||
|           sync: true | ||||
|           debug: true | ||||
|           script: | | ||||
|             mkdir abc/def | ||||
|             ls -al | ||||
|  | ||||
|     - name: ssh key passphrase | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.SSH2 }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         passphrase: ${{ secrets.PASSPHRASE }} | ||||
|         script: | | ||||
|           whoami | ||||
|           ls -al | ||||
|       - name: ssh key passphrase | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.SSH2 }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           passphrase: ${{ secrets.PASSPHRASE }} | ||||
|           script: | | ||||
|             whoami | ||||
|             ls -al | ||||
|  | ||||
|     - name: use insecure cipher | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         password: ${{ secrets.PASSWORD }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script: | | ||||
|       - name: use insecure cipher | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           password: ${{ secrets.PASSWORD }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script: | | ||||
|             ls \ | ||||
|               -lah | ||||
|         use_insecure_cipher: true | ||||
|           use_insecure_cipher: true | ||||
|  | ||||
|     # https://github.com/appleboy/ssh-action/issues/75#issuecomment-668314271 | ||||
|     - name: Multiline SSH commands interpreted as single lines | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         password: ${{ secrets.PASSWORD }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script_stop: true | ||||
|         script: | | ||||
|       # https://github.com/appleboy/ssh-action/issues/75#issuecomment-668314271 | ||||
|       - name: Multiline SSH commands interpreted as single lines | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           password: ${{ secrets.PASSWORD }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script_stop: true | ||||
|           script: | | ||||
|             ls \ | ||||
|               -lah | ||||
|         use_insecure_cipher: true | ||||
|           use_insecure_cipher: true | ||||
|  | ||||
|     # https://github.com/appleboy/ssh-action/issues/85 | ||||
|     - name: Deployment to multiple hosts with different ports | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: "${{ secrets.HOST }}:${{ secrets.PORT }}" | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         password: ${{ secrets.PASSWORD }} | ||||
|         port: 1024 | ||||
|         script_stop: true | ||||
|         script: | | ||||
|       # https://github.com/appleboy/ssh-action/issues/85 | ||||
|       - name: Deployment to multiple hosts with different ports | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: "${{ secrets.HOST }}:${{ secrets.PORT }}" | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           password: ${{ secrets.PASSWORD }} | ||||
|           port: 1024 | ||||
|           script_stop: true | ||||
|           script: | | ||||
|             ls \ | ||||
|               -lah | ||||
|         use_insecure_cipher: true | ||||
|           use_insecure_cipher: true | ||||
|  | ||||
|     # - name: SSH ED25519 Private Key | ||||
|     #   uses: ./ | ||||
| @@ -143,123 +142,143 @@ jobs: | ||||
|     name: testing with envs | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: checkout | ||||
|       uses: actions/checkout@v1 | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v1 | ||||
|  | ||||
|     - name: pass environment | ||||
|       uses: ./ | ||||
|       env: | ||||
|         FOO: "BAR" | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         envs: FOO | ||||
|         script: | | ||||
|           echo "I am $FOO, thanks" | ||||
|           echo "I am $BAR, thanks" | ||||
|       - name: pass environment | ||||
|         uses: ./ | ||||
|         env: | ||||
|           FOO: "BAR" | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           envs: FOO | ||||
|           script: | | ||||
|             echo "I am $FOO, thanks" | ||||
|             echo "I am $BAR, thanks" | ||||
|  | ||||
|     - name: pass multiple environment | ||||
|       uses: ./ | ||||
|       env: | ||||
|         FOO: "BAR" | ||||
|         BAR: "FOO" | ||||
|         SHA: ${{ github.sha }} | ||||
|         PORT: ${{ secrets.PORT }} | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         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: pass multiple environment | ||||
|         uses: ./ | ||||
|         env: | ||||
|           FOO: "BAR" | ||||
|           BAR: "FOO" | ||||
|           SHA: ${{ github.sha }} | ||||
|           PORT: ${{ secrets.PORT }} | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           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: ./ | ||||
|       env: | ||||
|         FOO: "BAR" | ||||
|         AAA: "BBB" | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         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: custom envs format | ||||
|         uses: ./ | ||||
|         env: | ||||
|           FOO: "BAR" | ||||
|           AAA: "BBB" | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           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: ./ | ||||
|       env: | ||||
|         INPUT_FOO: "BAR" | ||||
|         INPUT_AAA: "BBB" | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         allenvs: true | ||||
|         script: | | ||||
|           echo "I am $INPUT_FOO, thanks" | ||||
|           echo "I am $INPUT_AAA, thanks" | ||||
|           echo "$GITHUB_BASE_REF" | ||||
|           echo "$GITHUB_REF" | ||||
|       - name: pass all ENV variables to script | ||||
|         uses: ./ | ||||
|         env: | ||||
|           INPUT_FOO: "BAR" | ||||
|           INPUT_AAA: "BBB" | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           allenvs: true | ||||
|           script: | | ||||
|             echo "I am $INPUT_FOO, thanks" | ||||
|             echo "I am $INPUT_AAA, thanks" | ||||
|             echo "$GITHUB_BASE_REF" | ||||
|             echo "$GITHUB_REF" | ||||
|  | ||||
|   testing03: | ||||
|     name: git clone and pull | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: checkout | ||||
|       uses: actions/checkout@v1 | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v1 | ||||
|  | ||||
|     - name: clone private repository | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script_stop: true | ||||
|         script: | | ||||
|           git clone https://appleboy:${{ secrets.TEST_TOKEN }}@github.com/go-training/self-runner.git test_repository | ||||
|           rm -rf test_repository | ||||
|       - name: clone private repository | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script_stop: true | ||||
|           script: | | ||||
|             git clone https://appleboy:${{ secrets.TEST_TOKEN }}@github.com/go-training/self-runner.git test_repository | ||||
|             rm -rf test_repository | ||||
|  | ||||
|   testing04: | ||||
|     name: docker login and pull | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: checkout | ||||
|       uses: actions/checkout@v1 | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v1 | ||||
|  | ||||
|     - name: login GitHub Container Registry | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script_stop: true | ||||
|         script: | | ||||
|           echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u github.actor --password-stdin | ||||
|       - name: login GitHub Container Registry | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script_stop: true | ||||
|           script: | | ||||
|             echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u github.actor --password-stdin | ||||
|  | ||||
|     - name: login DockerHub Container Registry | ||||
|       uses: ./ | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
|         key: ${{ secrets.KEY }} | ||||
|         port: ${{ secrets.PORT }} | ||||
|         script_stop: true | ||||
|         script: | | ||||
|           echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin | ||||
|       - name: login DockerHub Container Registry | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script_stop: true | ||||
|           script: | | ||||
|             echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin | ||||
|  | ||||
|   testing05: | ||||
|     name: switch user | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v1 | ||||
|  | ||||
|       - name: switch to root user | ||||
|         uses: ./ | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           script_stop: true | ||||
|           request_pty: true | ||||
|           command_timeout: 30s | ||||
|           script: | | ||||
|             whoami && echo 'hello world' && touch todo.txt | ||||
|             sudo whoami | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| FROM ghcr.io/appleboy/drone-ssh:1.7.0 | ||||
| FROM ghcr.io/appleboy/drone-ssh:1.7.3 | ||||
|  | ||||
| COPY entrypoint.sh /entrypoint.sh | ||||
| RUN chmod +x /entrypoint.sh | ||||
| ENTRYPOINT ["/entrypoint.sh"] | ||||
| COPY entrypoint.sh /bin/entrypoint.sh | ||||
|  | ||||
| ENTRYPOINT ["/bin/entrypoint.sh"] | ||||
|   | ||||
							
								
								
									
										25
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								README.md
									
									
									
									
									
								
							| @@ -48,6 +48,7 @@ See [action.yml](./action.yml) for more detailed information. | ||||
| | envs_format             | Flexible configuration of environment value transfer            |               | | ||||
| | debug                   | Enable debug mode                                               | false         | | ||||
| | allenvs                 | Pass all environment variables to shell script                  | false         | | ||||
| | request_pty            | Request a pseudo-terminal from the server                        | false         | | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| @@ -63,7 +64,7 @@ jobs: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: executing remote ssh commands using password | ||||
|       uses: appleboy/ssh-action@v0.2.0 | ||||
|       uses: appleboy/ssh-action@v1.0.2 | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
| @@ -164,7 +165,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```yaml | ||||
| - name: executing remote ssh commands using password | ||||
|   uses: appleboy/ssh-action@v0.2.0 | ||||
|   uses: appleboy/ssh-action@v1.0.2 | ||||
|   with: | ||||
|     host: ${{ secrets.HOST }} | ||||
|     username: ${{ secrets.USERNAME }} | ||||
| @@ -177,7 +178,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```yaml | ||||
| - name: executing remote ssh commands using ssh key | ||||
|   uses: appleboy/ssh-action@v0.2.0 | ||||
|   uses: appleboy/ssh-action@v1.0.2 | ||||
|   with: | ||||
|     host: ${{ secrets.HOST }} | ||||
|     username: ${{ secrets.USERNAME }} | ||||
| @@ -190,7 +191,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```yaml | ||||
| - name: multiple command | ||||
|   uses: appleboy/ssh-action@v0.2.0 | ||||
|   uses: appleboy/ssh-action@v1.0.2 | ||||
|   with: | ||||
|     host: ${{ secrets.HOST }} | ||||
|     username: ${{ secrets.USERNAME }} | ||||
| @@ -207,7 +208,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```diff | ||||
|   - name: multiple host | ||||
|     uses: appleboy/ssh-action@v0.2.0 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
| -     host: "foo.com" | ||||
| +     host: "foo.com,bar.com" | ||||
| @@ -223,7 +224,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```diff | ||||
|   - name: multiple host | ||||
|     uses: appleboy/ssh-action@v0.2.0 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
| -     host: "foo.com" | ||||
| +     host: "foo.com:1234,bar.com:5678" | ||||
| @@ -238,7 +239,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```diff | ||||
|   - name: multiple host | ||||
|     uses: appleboy/ssh-action@v0.2.0 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: "foo.com,bar.com" | ||||
| +     sync: true | ||||
| @@ -254,7 +255,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```diff | ||||
|   - name: pass environment | ||||
|     uses: appleboy/ssh-action@v0.2.0 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
| +   env: | ||||
| +     FOO: "BAR" | ||||
| +     BAR: "FOO" | ||||
| @@ -279,7 +280,7 @@ _Inside `env` object, you need to pass every environment variable as a string, p | ||||
|  | ||||
| ```diff | ||||
|   - name: stop script if command error | ||||
|     uses: appleboy/ssh-action@v0.2.0 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: ${{ secrets.HOST }} | ||||
|       username: ${{ secrets.USERNAME }} | ||||
| @@ -332,7 +333,7 @@ Host FooServer | ||||
|  | ||||
| ```diff | ||||
|   - name: ssh proxy command | ||||
|     uses: appleboy/ssh-action@v0.2.0 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: ${{ secrets.HOST }} | ||||
|       username: ${{ secrets.USERNAME }} | ||||
| @@ -355,7 +356,7 @@ It is not uncommon for files to leak from backups or decommissioned hardware, an | ||||
|  | ||||
| ```diff | ||||
|   - name: ssh key passphrase | ||||
|     uses: appleboy/ssh-action@v0.2.0 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: ${{ secrets.HOST }} | ||||
|       username: ${{ secrets.USERNAME }} | ||||
| @@ -381,7 +382,7 @@ Now you can adjust you config: | ||||
|  | ||||
| ```diff | ||||
|   - name: ssh key passphrase | ||||
|     uses: appleboy/ssh-action@v0.2.0 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: ${{ secrets.HOST }} | ||||
|       username: ${{ secrets.USERNAME }} | ||||
|   | ||||
| @@ -58,7 +58,7 @@ jobs: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: executing remote ssh commands using password | ||||
|       uses: appleboy/ssh-action@v0.1.10 | ||||
|       uses: appleboy/ssh-action@v1.0.2 | ||||
|       with: | ||||
|         host: ${{ secrets.HOST }} | ||||
|         username: ${{ secrets.USERNAME }} | ||||
| @@ -157,7 +157,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```yaml | ||||
| - name: executing remote ssh commands using password | ||||
|   uses: appleboy/ssh-action@v0.1.10 | ||||
|   uses: appleboy/ssh-action@v1.0.2 | ||||
|   with: | ||||
|     host: ${{ secrets.HOST }} | ||||
|     username: ${{ secrets.USERNAME }} | ||||
| @@ -170,7 +170,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```yaml | ||||
| - name: executing remote ssh commands using ssh key | ||||
|   uses: appleboy/ssh-action@v0.1.10 | ||||
|   uses: appleboy/ssh-action@v1.0.2 | ||||
|   with: | ||||
|     host: ${{ secrets.HOST }} | ||||
|     username: ${{ secrets.USERNAME }} | ||||
| @@ -183,7 +183,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```yaml | ||||
| - name: multiple command | ||||
|   uses: appleboy/ssh-action@v0.1.10 | ||||
|   uses: appleboy/ssh-action@v1.0.2 | ||||
|   with: | ||||
|     host: ${{ secrets.HOST }} | ||||
|     username: ${{ secrets.USERNAME }} | ||||
| @@ -200,7 +200,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```diff | ||||
|   - name: multiple host | ||||
|     uses: appleboy/ssh-action@v0.1.10 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
| -     host: "foo.com" | ||||
| +     host: "foo.com,bar.com" | ||||
| @@ -216,7 +216,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```diff | ||||
|   - name: multiple host | ||||
|     uses: appleboy/ssh-action@v0.1.10 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
| -     host: "foo.com" | ||||
| +     host: "foo.com:1234,bar.com:5678" | ||||
| @@ -231,7 +231,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```diff | ||||
|   - name: multiple host | ||||
|     uses: appleboy/ssh-action@v0.1.10 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: "foo.com,bar.com" | ||||
| +     sync: true | ||||
| @@ -247,7 +247,7 @@ ssh-keygen -t ed25519 -a 200 -C "your_email@example.com" | ||||
|  | ||||
| ```diff | ||||
|   - name: pass environment | ||||
|     uses: appleboy/ssh-action@v0.1.10 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
| +   env: | ||||
| +     FOO: "BAR" | ||||
| +     BAR: "FOO" | ||||
| @@ -272,7 +272,7 @@ _在 `env` 對象中,您需要將每個環境變量作為字符串傳遞,傳 | ||||
|  | ||||
| ```diff | ||||
|   - name: stop script if command error | ||||
|     uses: appleboy/ssh-action@v0.1.10 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: ${{ secrets.HOST }} | ||||
|       username: ${{ secrets.USERNAME }} | ||||
| @@ -325,7 +325,7 @@ Host FooServer | ||||
|  | ||||
| ```diff | ||||
|   - name: ssh proxy command | ||||
|     uses: appleboy/ssh-action@v0.1.10 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: ${{ secrets.HOST }} | ||||
|       username: ${{ secrets.USERNAME }} | ||||
| @@ -346,7 +346,7 @@ Host FooServer | ||||
|  | ||||
| ```diff | ||||
|   - name: ssh key passphrase | ||||
|     uses: appleboy/ssh-action@v0.1.10 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: ${{ secrets.HOST }} | ||||
|       username: ${{ secrets.USERNAME }} | ||||
| @@ -372,7 +372,7 @@ ssh example.com ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key.pub | cut -d ' ' | ||||
|  | ||||
| ```diff | ||||
|   - name: ssh key passphrase | ||||
|     uses: appleboy/ssh-action@v0.1.10 | ||||
|     uses: appleboy/ssh-action@v1.0.2 | ||||
|     with: | ||||
|       host: ${{ secrets.HOST }} | ||||
|       username: ${{ secrets.USERNAME }} | ||||
|   | ||||
							
								
								
									
										76
									
								
								action.yml
									
									
									
									
									
								
							
							
						
						
									
										76
									
								
								action.yml
									
									
									
									
									
								
							| @@ -1,76 +1,78 @@ | ||||
| name: 'SSH Remote Commands' | ||||
| description: 'Executing remote ssh commands' | ||||
| author: 'Bo-Yi Wu' | ||||
| name: "SSH Remote Commands" | ||||
| description: "Executing remote ssh commands" | ||||
| author: "Bo-Yi Wu" | ||||
| inputs: | ||||
|   host: | ||||
|     description: 'SSH host address.' | ||||
|     description: "SSH host address." | ||||
|   port: | ||||
|     description: 'SSH port number.' | ||||
|     description: "SSH port number." | ||||
|     default: "22" | ||||
|   passphrase: | ||||
|     description: 'Passphrase for the SSH key.' | ||||
|     description: "Passphrase for the SSH key." | ||||
|   username: | ||||
|     description: 'SSH username.' | ||||
|     description: "SSH username." | ||||
|   password: | ||||
|     description: 'SSH password.' | ||||
|     description: "SSH password." | ||||
|   sync: | ||||
|     description: 'Enable synchronous execution if multiple hosts are involved.' | ||||
|     description: "Enable synchronous execution if multiple hosts are involved." | ||||
|   use_insecure_cipher: | ||||
|     description: 'Include more ciphers by using insecure ciphers.' | ||||
|     description: "Include more ciphers by using insecure ciphers." | ||||
|   cipher: | ||||
|     description: 'Allowed cipher algorithms. If unspecified, a sensible default is used.' | ||||
|     description: "Allowed cipher algorithms. If unspecified, a sensible default is used." | ||||
|   timeout: | ||||
|     description: 'Timeout duration for establishing SSH connection to the host.' | ||||
|     description: "Timeout duration for establishing SSH connection to the host." | ||||
|     default: "30s" | ||||
|   command_timeout: | ||||
|     description: 'Timeout duration for SSH commands execution.' | ||||
|     description: "Timeout duration for SSH commands execution." | ||||
|     default: "10m" | ||||
|   key: | ||||
|     description: 'Content of the SSH private key. For example, the raw content of ~/.ssh/id_rsa.' | ||||
|     description: "Content of the SSH private key. For example, the raw content of ~/.ssh/id_rsa." | ||||
|   key_path: | ||||
|     description: 'Path to the SSH private key file.' | ||||
|     description: "Path to the SSH private key file." | ||||
|   fingerprint: | ||||
|     description: 'SHA256 fingerprint of the host public key.' | ||||
|     description: "SHA256 fingerprint of the host public key." | ||||
|   proxy_host: | ||||
|     description: 'SSH proxy host address.' | ||||
|     description: "SSH proxy host address." | ||||
|   proxy_port: | ||||
|     description: 'SSH proxy port number.' | ||||
|     description: "SSH proxy port number." | ||||
|     default: "22" | ||||
|   proxy_username: | ||||
|     description: 'SSH proxy username.' | ||||
|     description: "SSH proxy username." | ||||
|   proxy_password: | ||||
|     description: 'SSH proxy password.' | ||||
|     description: "SSH proxy password." | ||||
|   proxy_passphrase: | ||||
|     description: 'SSH proxy key passphrase.' | ||||
|     description: "SSH proxy key passphrase." | ||||
|   proxy_timeout: | ||||
|     description: 'Timeout duration for establishing SSH connection to the proxy host.' | ||||
|     description: "Timeout duration for establishing SSH connection to the proxy host." | ||||
|     default: "30s" | ||||
|   proxy_key: | ||||
|     description: 'Content of the SSH proxy private key. For example, the raw content of ~/.ssh/id_rsa.' | ||||
|     description: "Content of the SSH proxy private key. For example, the raw content of ~/.ssh/id_rsa." | ||||
|   proxy_key_path: | ||||
|     description: 'Path to the SSH proxy private key file.' | ||||
|     description: "Path to the SSH proxy private key file." | ||||
|   proxy_fingerprint: | ||||
|     description: 'SHA256 fingerprint of the proxy host public key.' | ||||
|     description: "SHA256 fingerprint of the proxy host public key." | ||||
|   proxy_cipher: | ||||
|     description: 'Allowed cipher algorithms for the proxy. If unspecified, a sensible default is used.' | ||||
|     description: "Allowed cipher algorithms for the proxy. If unspecified, a sensible default is used." | ||||
|   proxy_use_insecure_cipher: | ||||
|     description: 'Include more ciphers for the proxy by using insecure ciphers.' | ||||
|     description: "Include more ciphers for the proxy by using insecure ciphers." | ||||
|   script: | ||||
|     description: 'Commands to be executed.' | ||||
|     description: "Commands to be executed." | ||||
|   script_stop: | ||||
|     description: 'Stop the script after the first failure.' | ||||
|     description: "Stop the script after the first failure." | ||||
|   envs: | ||||
|     description: 'Environment variables to be passed to the shell script.' | ||||
|     description: "Environment variables to be passed to the shell script." | ||||
|   envs_format: | ||||
|     description: 'Flexible configuration for environment value transfer.' | ||||
|     description: "Flexible configuration for environment value transfer." | ||||
|   debug: | ||||
|     description: 'Enable debug mode.' | ||||
|     description: "Enable debug mode." | ||||
|   allenvs: | ||||
|     description: 'pass all environment variable to shell script.' | ||||
|     description: "pass all environment variable to shell script." | ||||
|   request_pty: | ||||
|     description: "Request a pseudo-terminal from the server." | ||||
| runs: | ||||
|   using: 'docker' | ||||
|   image: 'Dockerfile' | ||||
|   using: "docker" | ||||
|   image: "Dockerfile" | ||||
|  | ||||
| branding: | ||||
|   icon: 'terminal' | ||||
|   color: 'gray-dark' | ||||
|   icon: "terminal" | ||||
|   color: "gray-dark" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user