Use Cyberduck CLI GitHub Action

Use Cyberduck CLI in a GitHub Actions workflow conveniently in a docker container.

Usage in Custom Workflow

  1. Add the [cyberduck-cli-action](https://github.com/iterate-ch/cyberduck-cli-action) action to a workflow .yml with a step like

     - name: Upload
       uses: iterate-ch/cyberduck-cli-action@v1
       env:
           USERNAME: ${{secrets.S3_ACCESS_KEY}}
           PASSWORD: ${{secrets.S3_SECRET_KEY}}
       with:
           mode: upload
           url: 's3:/bucket/path/'
           path: 'release/*'
           args: '--verbose'
    
  2. Choose a mode. Several modes are supported like download, list and upload probably the most common usage. If you want to any of the supported command line parameters use raw and omit the path and url options.

  3. Set the url input option to a valid URI that references the protocol, optional server and destination upload file or directory as documented. For S3 this would be s3:/<bucket>/<key> or for SFTP sftp://<server>/<directory>/.

    Attention

    Make sure to include a trailing / in url input to denote a directory.

  4. Specify credentials in the environment with USERNAME, PASSWORD. Additionally IDENTITY can be used for SFTP connections equivalent to the --identity parameter. The example assumes you have S3_ACCESS_KEY and S3_SECRET_KEY defined as a secret. Alternatively specify --username ${{secrets.USER}} --password ${{secrets.PASSWORD}} in args.

  5. Add additional arguments for Cyberduck CLI. Any of the available generic options can be passed with the args input.

    Tip

    Only overwrite existing files on changes using args: '--existing compare'.

  6. Read output in a next step using the key log using jobs.<job_id>.outputs.log output.

References

  • Cyberduck CLI GitHub Action README