Files
publish-skydust-app/action.yml

88 lines
2.6 KiB
YAML

name: Publish Skydust App
description: Uses generic packages to publish apps
author: Skydust
inputs:
appName:
description: "The app name to publish"
required: true
version:
description: "The version to publish (defaults to NEW_VERSION env)"
required: false
default: "${NEW_VERSION}"
publishFolder:
description: "Folder to tar, gz and publish"
required: true
default: "dist/"
ignorePatterns:
description: "A comma separated string of file patterns to ignore relative to the publish folder."
required: false
default: ""
customArchiveName:
description: "Custom archive name, useful for multi-arch"
required: false
default: "package"
token:
description: "CI Token"
required: false
default: "${{ secrets.CI_TOKEN }}"
runs:
using: composite
steps:
- name: Packaging App
shell: bash
run: |
log_info "Packaging app into $(yellow)${{ inputs.customArchiveName }}"
cd "${{ inputs.publishFolder }}"
shopt -s dotglob
# Build tar command dynamically
tar_cmd=(
tar
-cvzf
"${{ inputs.customArchiveName }}.tar.gz"
)
if [[ -n "${{ ignorePatterns }}" ]]; then
IFS=',' read -ra exclusions <<< "${{ ignorePatterns }}"
for exclusion in "${exclusions[@]}"; do
tar_cmd+=(--exclude="${exclusion}")
log_info "Excluding pattern ${exclusion}"
done
fi
# Add all files
tar_cmd+=(*)
# Execute the tar command
"${tar_cmd[@]}"
shopt -u dotglob
mv "${{ inputs.customArchiveName }}.tar.gz" ../
- name: Publishing App
shell: bash
run: |
PKG_URL="${{ gitea.server_url }}/api/packages/${{ gitea.repository_owner }}/generic/${{ inputs.appName }}/${{ inputs.version }}/${{ inputs.customArchiveName }}.tar.gz"
log_info "Sending package in $(yellow)${PKG_URL}"
curl --user "MilaBot:${{ inputs.token }}" \
--upload-file "${{ inputs.customArchiveName }}.tar.gz" \
"${PKG_URL}" \
--progress-bar \
--show-error \
--fail
PKG_SHA="$(sha256sum "${{ inputs.customArchiveName }}.tar.gz" | cut -d' ' -f1 | tr -d '\n')"
log_info "Exporting package sha256 hash in env var $(yellow)PKG_SHA"
echo "PKG_SHA=${PKG_SHA}" >> $GITEA_ENV
log_info "Exporting package url in env var $(yellow)PKG_URL"
echo "PKG_URL=${PKG_URL}" >> $GITEA_ENV
log_info "Cleaning up"
rm -f "${{ inputs.customArchiveName }}.tar.gz"