initial commit
This commit is contained in:
38
utils/chown/action.yaml
Normal file
38
utils/chown/action.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
name: chown
|
||||
description: "Take or change ownership of the specified files."
|
||||
inputs:
|
||||
uid:
|
||||
description: "User id."
|
||||
required: false
|
||||
default: ""
|
||||
gid:
|
||||
description: "Group id."
|
||||
required: false
|
||||
default: ""
|
||||
file:
|
||||
description: "File or folder to own."
|
||||
required: true
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: "Determine UID and GID."
|
||||
id: ids
|
||||
run: |
|
||||
USER_UID="${{ inputs.uid }}"
|
||||
USER_GID="${{ inputs.gid }}"
|
||||
if [[ -z "$USER_UID" ]]; then
|
||||
USER_UID=$(id -u)
|
||||
fi
|
||||
if [[ -z "$USER_GID" ]]; then
|
||||
USER_GID=$(id -g)
|
||||
fi
|
||||
|
||||
echo $USER_UID:$USER_GID
|
||||
|
||||
echo "::set-output name=uid::$USER_UID"
|
||||
echo "::set-output name=gid::$USER_GID"
|
||||
shell: bash
|
||||
- name: "Take ownership of output."
|
||||
uses: act/common/distros/busybox@master
|
||||
with:
|
||||
args: chown ${{ steps.ids.outputs.uid }}:${{ steps.ids.outputs.gid }} "${{ inputs.file }}" -R
|
||||
67
utils/compress/action.yaml
Normal file
67
utils/compress/action.yaml
Normal file
@@ -0,0 +1,67 @@
|
||||
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
|
||||
workingDir:
|
||||
description: "Working directory to perform the command in. Default: ."
|
||||
required: true
|
||||
default: "."
|
||||
outputs:
|
||||
publicKey:
|
||||
description: "The compressed archive."
|
||||
value: ${{ steps.command.outputs.name }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: "Build command."
|
||||
id: command
|
||||
run: |
|
||||
cd "${{ inputs.workingDir }}"
|
||||
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=name::${{ inputs.name }}"
|
||||
shell: bash
|
||||
- name: "Compress archive."
|
||||
id: compress
|
||||
uses: act/common/distros/rockylinux@master
|
||||
with:
|
||||
workingDir: ${{ inputs.workingDir }}
|
||||
args: ${{ steps.command.outputs.command }}
|
||||
30
utils/download/action.yaml
Normal file
30
utils/download/action.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
name: download
|
||||
description: "Download a file from a URL."
|
||||
inputs:
|
||||
url:
|
||||
description: "Url to download from."
|
||||
required: true
|
||||
outputFile:
|
||||
description: "Output file of the download."
|
||||
required: false
|
||||
default: ""
|
||||
outputs:
|
||||
file:
|
||||
description: "The path of the downloaded file."
|
||||
value: ${{ steps.download.outputs.file }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- run: cp -f ${{ github.action_path }}/download.sh _download.sh
|
||||
shell: bash
|
||||
- name: "Download file."
|
||||
id: download
|
||||
uses: act/common/distros/rockylinux@master
|
||||
with:
|
||||
args: sh "_download.sh" "${{ inputs.url }}" "${{ inputs.outputFile }}"
|
||||
- run: rm _download.sh
|
||||
shell: bash
|
||||
- name: "Own artifacts."
|
||||
uses: act/common/utils/chown@master
|
||||
with:
|
||||
file: ${{ steps.download.outputs.file }}
|
||||
8
utils/download/download.sh
Normal file
8
utils/download/download.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
URL="$1"
|
||||
OUTPUT_FILE="$2"
|
||||
if [[ -z "$OUTPUT_FILE" ]]; then
|
||||
OUTPUT_FILE="$(basename $URL)"
|
||||
fi
|
||||
wget $URL -O "$OUTPUT_FILE"
|
||||
echo "::set-output name=file::$OUTPUT_FILE"
|
||||
45
utils/extract/action.yaml
Normal file
45
utils/extract/action.yaml
Normal file
@@ -0,0 +1,45 @@
|
||||
name: extract
|
||||
description: "Extract a compressed file."
|
||||
inputs:
|
||||
file:
|
||||
description: "File to extract."
|
||||
required: true
|
||||
outputDir:
|
||||
description: "Directory to extract to."
|
||||
required: false
|
||||
default: ""
|
||||
prefixArgs:
|
||||
description: "Additional arguments to pass in early."
|
||||
required: false
|
||||
additionalArgs:
|
||||
description: "Additional arguments to pass in."
|
||||
required: false
|
||||
deleteSource:
|
||||
description: "Delete the compressed file afterwards."
|
||||
required: false
|
||||
default: "false"
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: "Build command."
|
||||
id: command
|
||||
run: |
|
||||
COMMAND="unzip ${{ inputs.prefixArgs }} -o ${{ inputs.file }} ${{ inputs.additionalArgs }}"
|
||||
OUTPUT_DIR="${{ inputs.outputDir }}"
|
||||
if [[ -n "$OUTPUT_DIR" ]]; then
|
||||
COMMAND="$COMMAND" -d "$OUTPUT_DIR"
|
||||
fi
|
||||
echo "::set-output name=command::$COMMAND"
|
||||
shell: bash
|
||||
- name: "Convert file."
|
||||
id: convert
|
||||
uses: act/common/distros/busybox@master
|
||||
with:
|
||||
args: ${{ steps.command.outputs.command }}
|
||||
- name: "Delete source."
|
||||
run: |
|
||||
if [[ ${{ inputs.deleteSource }} != "true" ]]; then
|
||||
return
|
||||
fi
|
||||
rm ${{ inputs.file }}
|
||||
shell: bash
|
||||
Reference in New Issue
Block a user