From d4d88e3c32c1e8b0a0236939db02dd13d7df5056 Mon Sep 17 00:00:00 2001 From: Dennis Ameling Date: Wed, 30 Jun 2021 14:04:35 +0200 Subject: [PATCH] Fix GH Action, update README --- .github/workflows/test.yml | 4 +- README.md | 118 +++++++------------------------------ 2 files changed, 24 insertions(+), 98 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f850058..9887db4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,7 @@ jobs: username: ${{ secrets.FTP_USER }} password: ${{ secrets.FTP_PASSWORD }} local_dir: dummydata/testFolder/ - server_dir: ${{ matrix.os }} + server_dir: ${{ matrix.os }}/ - name: test with testFolderRecursive uses: ./ with: @@ -40,4 +40,4 @@ jobs: username: ${{ secrets.FTP_USER }} password: ${{ secrets.FTP_PASSWORD }} local_dir: dummydata/testFolderRecursive/ - server_dir: ${{ matrix.os }} + server_dir: ${{ matrix.os }}/ diff --git a/README.md b/README.md index 68d5d07..357dca9 100644 --- a/README.md +++ b/README.md @@ -2,104 +2,30 @@ typescript-action status

-# Create a JavaScript Action using TypeScript +# Simple FTP upload -Use this template to bootstrap the creation of a TypeScript action.:rocket: +With this Action, you can upload folder contents to an FTP server. -This template includes compilation support, tests, a validation workflow, publishing, and versioning guidance. +## Basic usage -If you are new, there's also a simpler introduction. See the [Hello World JavaScript Action](https://github.com/actions/hello-world-javascript-action) - -## Create an action from this template - -Click the `Use this Template` and provide the new repo details for your action - -## Code in Main - -> First, you'll need to have a reasonably modern version of `node` handy. This won't work with versions older than 9, for instance. - -Install the dependencies -```bash -$ npm install -``` - -Build the typescript and package it for distribution -```bash -$ npm run build && npm run package -``` - -Run the tests :heavy_check_mark: -```bash -$ npm test - - PASS ./index.test.js - ✓ throws invalid number (3ms) - ✓ wait 500 ms (504ms) - ✓ test runs (95ms) - -... +```YAML + uses: dennisameling/ftp-upload-action + with: + server: ${{ secrets.FTP_SERVER }} + username: ${{ secrets.FTP_USER }} + password: ${{ secrets.FTP_PASSWORD }} + local_dir: ./ # Should always end with / + server_dir: ./ # Should always end with / ``` -## Change action.yml - -The action.yml contains defines the inputs and output for your action. - -Update the action.yml with your name, description, inputs and outputs for your action. - -See the [documentation](https://help.github.com/en/articles/metadata-syntax-for-github-actions) - -## Change the Code - -Most toolkit and CI/CD operations involve async operations so the action is run in an async function. - -```javascript -import * as core from '@actions/core'; -... - -async function run() { - try { - ... - } - catch (error) { - core.setFailed(error.message); - } -} - -run() -``` - -See the [toolkit documentation](https://github.com/actions/toolkit/blob/master/README.md#packages) for the various packages. - -## Publish to a distribution branch - -Actions are run from GitHub repos so we will checkin the packed dist folder. - -Then run [ncc](https://github.com/zeit/ncc) and push the results: -```bash -$ npm run package -$ git add dist -$ git commit -a -m "prod dependencies" -$ git push origin releases/v1 -``` - -Note: We recommend using the `--license` option for ncc, which will create a license file for all of the production node modules used in your project. - -Your action is now published! :rocket: - -See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) - -## Validate - -You can now validate the action by referencing `./` in a workflow in your repo (see [test.yml](.github/workflows/test.yml)) - -```yaml -uses: ./ -with: - milliseconds: 1000 -``` - -See the [actions tab](https://github.com/actions/typescript-action/actions) for runs of this action! :rocket: - -## Usage: - -After testing you can [create a v1 tag](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) to reference the stable and latest V1 action +## Available inputs + +| Key | Description | Required | Default | +| --- | --- | --- | --- | +| server | FTP server (hostname or IP) | yes | n/a | +| username | FTP username | yes | n/a | +| password | FTP password | yes | n/a | +| port | FTP port number | no | 21 | +| secure | True uses FTPS, while false uses plain FTP. Defaults to true. | no | true | +| local_dir | Folder to upload from, must end with trailing slash / | no | ./ | +| local_dir | Path to upload to on the server. Must end with trailing slash / | no | ./ |