ci: add comprehensive GitHub Actions tests for scp-action
- Add GitHub Actions workflow to test multiple scp-action configurations and scenarios - Include job to test deployment of uploaded and downloaded artifacts via scp - Include job to copy only changed files detected by tj-actions/changed-files - Add test for stripping leading path components when copying files - Add coverage for copying files to single and multiple hosts, including target folder variations - Test scp-action usage with both SSH key and password authentication, with and without passphrases, and option for insecure cipher Signed-off-by: appleboy <appleboy.tw@gmail.com>
This commit is contained in:
		
							
								
								
									
										150
									
								
								.github/workflows/stable.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								.github/workflows/stable.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,150 @@ | ||||
| name: testing v1 | ||||
| on: [push] | ||||
| jobs: | ||||
|   testing: | ||||
|     name: test scp action | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - name: copy file via ssh password | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           password: ${{ secrets.PASSWORD }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           source: "tests/a.txt,tests/b.txt" | ||||
|           target: "test" | ||||
|  | ||||
|       - name: copy file via ssh key | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           source: "tests/a.txt,tests/b.txt" | ||||
|           target: "test" | ||||
|  | ||||
|       - name: remove the specified number of leading path elements | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           source: "tests/a.txt,tests/b.txt" | ||||
|           target: "foobar" | ||||
|           strip_components: 1 | ||||
|  | ||||
|       - name: ssh key with passphrase | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.SSH2 }} | ||||
|           passphrase: ${{ secrets.PASSPHRASE }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           source: "tests/a.txt,tests/b.txt" | ||||
|           target: "test" | ||||
|  | ||||
|       - name: use insecure cipher | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.SSH2 }} | ||||
|           passphrase: ${{ secrets.PASSPHRASE }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           source: "tests/a.txt,tests/b.txt" | ||||
|           target: "test" | ||||
|           use_insecure_cipher: true | ||||
|  | ||||
|   deploy: | ||||
|     name: test deploy artifact | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - run: echo hello > world.txt | ||||
|  | ||||
|       - uses: actions/upload-artifact@v4 | ||||
|         with: | ||||
|           name: my-artifact | ||||
|           path: world.txt | ||||
|  | ||||
|       - uses: actions/download-artifact@v4 | ||||
|         with: | ||||
|           name: my-artifact | ||||
|           path: distfiles | ||||
|  | ||||
|       - name: copy file to server | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           source: distfiles/* | ||||
|           target: test | ||||
|  | ||||
|   changes: | ||||
|     name: test changed-files | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - name: Get changed files | ||||
|         id: changed-files | ||||
|         uses: tj-actions/changed-files@v45 | ||||
|         with: | ||||
|           since_last_remote_commit: true | ||||
|           separator: "," | ||||
|  | ||||
|       - name: copy file to server | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           source: ${{ steps.changed-files.outputs.all_changed_files }} | ||||
|           target: test | ||||
|  | ||||
|   target: | ||||
|     name: test target folder | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - name: copy file to server | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: ${{ secrets.PORT }} | ||||
|           source: tests/a.txt,tests/b.txt | ||||
|           target: foobar foobar   1234 | ||||
|  | ||||
|   multipleHost: | ||||
|     name: test Multiple Host | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: checkout | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - name: copy file to server | ||||
|         uses: appleboy/scp-action@v1 | ||||
|         with: | ||||
|           host: ${{ secrets.HOST }}:${{ secrets.PORT }},${{ secrets.HOST }}:${{ secrets.PORT }} | ||||
|           username: ${{ secrets.USERNAME }} | ||||
|           key: ${{ secrets.KEY }} | ||||
|           port: 1024 | ||||
|           source: tests/a.txt,tests/b.txt | ||||
|           target: foobar | ||||
		Reference in New Issue
	
	Block a user
	 appleboy
					appleboy