name: scp files
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: ./
        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

  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: ./
        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: ./
        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: ./
        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: ./
        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