mirror of
				https://github.com/appleboy/scp-action.git
				synced 2025-10-31 19:33:47 +00:00 
			
		
		
		
	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:
		
							parent
							
								
									ff85246aca
								
							
						
					
					
						commit
						8b7c180c3f
					
				
							
								
								
									
										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 | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user