mirror of
https://github.com/appleboy/scp-action.git
synced 2024-11-28 02:57:26 +08:00
952a6e3250
- Add a new job to copy files to multiple hosts in the CI workflow fix https://github.com/appleboy/scp-action/issues/98
174 lines
4.4 KiB
YAML
174 lines
4.4 KiB
YAML
name: scp files
|
|
on: [push]
|
|
jobs:
|
|
|
|
testing:
|
|
name: test scp action
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: copy file via ssh password
|
|
uses: ./
|
|
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: ./
|
|
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: ./
|
|
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: ./
|
|
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: ./
|
|
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
|
|
|
|
- name: correct key but wrong password
|
|
uses: appleboy/scp-action@7af00892de6f8397c5c3393cfb3b32ae7f91b94b
|
|
with:
|
|
host: ${{ secrets.HOST }}
|
|
username: ${{ secrets.USERNAME }}
|
|
key: ${{ secrets.KEY }}
|
|
password: abcdefg
|
|
port: ${{ secrets.PORT }}
|
|
source: "tests/a.txt,tests/b.txt"
|
|
target: "test"
|
|
|
|
- name: correct password but wrong key
|
|
uses: appleboy/scp-action@7af00892de6f8397c5c3393cfb3b32ae7f91b94b
|
|
with:
|
|
host: ${{ secrets.HOST }}
|
|
username: ${{ secrets.USERNAME }}
|
|
key: abcdefg
|
|
password: ${{ secrets.PASSWORD }}
|
|
port: ${{ secrets.PORT }}
|
|
source: "tests/a.txt,tests/b.txt"
|
|
target: "test"
|
|
|
|
deploy:
|
|
name: test deploy artifact
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- run: echo hello > world.txt
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: my-artifact
|
|
path: world.txt
|
|
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: my-artifact
|
|
path: distfiles
|
|
|
|
- name: copy file to server
|
|
uses: ./
|
|
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@v3
|
|
|
|
- name: Get changed files
|
|
id: changed-files
|
|
uses: tj-actions/changed-files@v35
|
|
with:
|
|
since_last_remote_commit: true
|
|
separator: ","
|
|
|
|
- name: copy file to server
|
|
uses: ./
|
|
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@v3
|
|
|
|
- name: copy file to server
|
|
uses: ./
|
|
with:
|
|
host: ${{ secrets.HOST }}
|
|
username: ${{ secrets.USERNAME }}
|
|
key: ${{ secrets.KEY }}
|
|
port: ${{ secrets.PORT }}
|
|
source: tests/a.txt,tests/b.txt
|
|
target: test foobar
|
|
|
|
multipleHost:
|
|
name: test Multiple Host
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: copy file to server
|
|
uses: ./
|
|
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
|