diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 0b99357..0000000 --- a/.dockerignore +++ /dev/null @@ -1,5 +0,0 @@ -* -*./* -*/* -*.* -!*.sh \ No newline at end of file diff --git a/.gitignore b/.gitignore index c925794..1c36090 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ .history -.vscode -*.log \ No newline at end of file +.vscode \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b1ad660..af66730 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,7 @@ FROM alpine:3.10 -RUN apk upgrade --update \ - && apk add --update openssh \ - && rm -rf /tmp/* /usr/share/man /var/cache/apk/* +COPY LICENSE README.md / -COPY . / +COPY entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] diff --git a/README.md b/README.md index f1c1ace..674bbd3 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,12 @@ Action to send dist files to a remote server with scp command ## Required params -- `src`: Source dir to deploy +- `src`: Sorce dir to deploy - `host`: SSH address - `remote`: Remote dir path - `port`: SSH Port - `user`: SSH User name - `key`: Private key -- `options` : Extra options for scp ### To publish @@ -60,4 +59,4 @@ jobs: port: ${{ secrets.SSH_PORT }} user: ${{ secrets.SSH_USER }} key: ${{ secrets.SSH_KEY }} -``` +``` \ No newline at end of file diff --git a/action.yml b/action.yml index afb5784..c131555 100644 --- a/action.yml +++ b/action.yml @@ -1,35 +1,29 @@ -name: 'SCP Deploy Smart' +name: 'SCP deploy action' description: 'Action to send dist files to a remote server with scp command' -author: 'Fabricio Nogueira & Jackz' +author: 'Fabricio Nogueira' inputs: src: - description: 'Source dir to deploy' + description: 'Sorce dir to deploy' required: true host: description: 'SSH address' required: true remote: - description: 'base remote folder' + description: 'Remote dir path' required: true port: description: 'SSH Port' required: false - default: "22" + default: 22 user: description: 'SSH User name' required: true key: description: 'Private key' required: true - options: - description: 'Extra options for scp' - required: false - extract: - description: 'Is src a tar file to be extracted?' - required: false runs: using: 'docker' image: 'Dockerfile' branding: icon: 'upload-cloud' - color: 'blue' + color: 'blue' \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh index 380c690..cc1f436 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,31 +1,7 @@ #!/bin/sh -l -set -e + echo -e "${INPUT_KEY}" >__TEMP_INPUT_KEY_FILE -set -x chmod 600 __TEMP_INPUT_KEY_FILE -COMMIT_SHA=$(cat ${INPUT_SRC}/.git-commit) -if [[ -z "$COMMIT_SHA" ]]; then - echo "COMMIT_SHA: Could not find file ${INPUT_SRC}/.git-commit" - exit 1 -fi -echo "SSH Host: ${INPUT_USER}@${INPUT_HOST}:${INPUT_PORT}" -echo "Local Path: ${INPUT_SRC}" -echo "Remote Path: ${INPUT_REMOTE}" -echo "Commit: ${COMMIT_SHA}" - -if [[ -z "$INPUT_EXTRACT"]]; then -# SCP normal files -scp -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE \ - -P "${INPUT_PORT}" $INPUT_OPTIONS -r ${INPUT_SRC} "${INPUT_USER}"@"${INPUT_HOST}":"${INPUT_REMOTE}/${COMMIT_SHA}" -elif -# Untar directly via SSh -ssh -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE \ - "${INPUT_USER}"@"${INPUT_HOST}" -p "${INPUT_PORT}" \ - -C "mkdir ${INPUT_REMOTE}/${COMMIT_SHA} && cd ${INPUT_REMOTE}/${COMMIT_SHA} && tar -xvv" < $INPUT_SRC -fi -echo "File transfer complete. Symlinking and purging old entries" -ssh -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE \ - "${INPUT_USER}"@"${INPUT_HOST}" -p "${INPUT_PORT}" \ - -C "ln -s ${INPUT_REMOTE}/${COMMIT_SHA} ${INPUT_REMOTE}/latest && find ${INPUT_REMOTE} -mindepth 1 -maxdepth 1 -type d -not -path './latest' | tail -n +5 | xargs --no-run-if-empty rm -r" +scp -o StrictHostKeyChecking=no -v -i __TEMP_INPUT_KEY_FILE -P "${INPUT_PORT}" -r ${INPUT_SRC} "${INPUT_USER}"@"${INPUT_HOST}":"${INPUT_REMOTE}"