64 lines
1.8 KiB
YAML
64 lines
1.8 KiB
YAML
name: compress
|
|
description: "Compress a file or directory"
|
|
inputs:
|
|
files:
|
|
description: "File or directory to compress."
|
|
required: true
|
|
name:
|
|
description: "Filename of the zip file."
|
|
required: true
|
|
recursive:
|
|
description: "Recursivly zip files. Default: true"
|
|
required: false
|
|
default: "true"
|
|
quiet:
|
|
description: "Don't output every zipped file. Default: true"
|
|
required: false
|
|
default: "true"
|
|
compressionLevel:
|
|
description: "Compression level between 1-9. Default: 6"
|
|
required: false
|
|
default: "6"
|
|
compressionMethod:
|
|
description: "Compression method. Options: deflate or store. Default: deflate"
|
|
required: true
|
|
default: "deflate"
|
|
additionalArgs:
|
|
description: "Additional arguments."
|
|
required: false
|
|
outputs:
|
|
archive:
|
|
description: "The compressed archive."
|
|
value: ${{ steps.command.outputs.archive }}
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: "Build command."
|
|
id: command
|
|
run: |
|
|
WORKDIR=${WORKDIR:-.}
|
|
cd "$WORKDIR"
|
|
mkdir -p "$(dirname '${{ inputs.name }}')"
|
|
COMMAND="zip -${{ inputs.compressionLevel }} -Z ${{ inputs.compressionMethod }} ${{ inputs.additionalArgs }}"
|
|
if [[ "${{ inputs.recursive }}" == "true" ]]; then
|
|
COMMAND="$COMMAND -r"
|
|
fi
|
|
if [[ "${{ inputs.quiet }}" == "true" ]]; then
|
|
COMMAND="$COMMAND -q"
|
|
fi
|
|
NAME="${{ inputs.name }}"
|
|
NAME="${NAME/ /\\ }"
|
|
FILES="${{ inputs.files }}"
|
|
FILES="${FILES/ /\\ }"
|
|
|
|
COMMAND="$COMMAND $NAME $FILES"
|
|
echo "Compressing with: $COMMAND"
|
|
echo "::set-output name=command::$COMMAND"
|
|
echo "::set-output name=archive::${{ inputs.name }}"
|
|
shell: bash
|
|
- name: "Compress archive."
|
|
id: compress
|
|
uses: act/common/distros/rockylinux@master
|
|
with:
|
|
args: ${{ steps.command.outputs.command }}
|