Files
common/gitea/download-previous-artifact/action.yaml
2025-07-10 22:12:39 -07:00

97 lines
3.8 KiB
YAML

name: github-download-previous-artifact
description: "Download a single artifact from a previous Workflow run."
inputs:
host:
description: "Gitea host to query."
required: true
default: "${{ github.server_url }}"
username:
description: "Gitea user to query with."
required: true
default: "${{ github.actor }}"
password:
description: "Credentials to use for Gitea. If not specified, the GitHub/Gitea token will be used."
required: true
default: "${{ github.token }}"
repoFullName:
description: "The full name of the repository that ran the workflow to download from. Default: ${{ github.repository }}"
required: true
default: "${{ github.repository }}"
workflowPattern:
description: "Pattern of the workflow name to match. Supports wildcard or RegEx. Default: ${{ github.event.repository.workflow }}"
required: true
default: "${{ github.event.repository.workflow }}"
artifactPattern:
description: "Pattern of the artifacts to match. Supports wildcard or RegEx. Default: *"
required: true
default: "*"
branchPattern:
description: "Branch of the workflow to match. Supports wildcard or RegEx. Default: ${{ github.ref }}"
required: false
default: "${{ github.ref }}"
unzipDir:
description: "Directory to unzip the artifacts into. If not specified, the artifacts will not be unzipped."
required: false
default: ""
unzipPattern:
description: "Pattern of the files to upload from the unzipped artifacts."
required: false
default: "*"
deleteAfterUnzip:
description: "Whether to delete the artifacts after unzipping. Default: false"
required: false
default: "false"
nugetSources:
description: "List of additional NuGet sources to use."
required: false
default: "${{ github.server_url }}/api/packages/FORK/nuget/index.json"
nugetUsernames:
description: "List of additional NuGet usernames to use."
required: false
default: "${{ github.actor }}"
nugetPasswords:
description: "List of additional NuGet passwords to use."
required: false
default: "${{ github.token }}"
outputs:
downloadedArtifactName:
description: "The downloaded artifacts names"
value: ${{ steps.artifacts.outputs.fileName }}
downloadedArtifactPath:
description: "The downloaded artifact paths."
value: ${{ steps.artifacts.outputs.filePath }}
runs:
using: "composite"
steps:
- uses: act/common/gitea/download-previous-artifacts@master
id: download
with:
host: ${{ inputs.host }}
username: ${{ inputs.username }}
password: ${{ inputs.password }}
repoFullName: ${{ inputs.repoFullName }}
workflowPattern: ${{ inputs.workflowPattern }}
artifactPattern: ${{ inputs.artifactPattern }}
branchPattern: ${{ inputs.branchPattern }}
unzipDir: ${{ inputs.unzipDir }}
deleteAfterUnzip: ${{ inputs.deleteAfterUnzip }}
nugetSources: ${{ inputs.nugetSources }}
nugetUsernames: ${{ inputs.nugetUsernames }}
nugetPasswords: ${{ inputs.nugetPasswords || inputs.password }}
- name: "Get the file to upload."
id: artifacts
run: |
if [[ -n "${{ inputs.unzipDir }}" ]]; then
echo "Using unzipPattern: ${{ inputs.unzipPattern }}"
FIRST_DIR=$(echo '${{ steps.download.outputs.downloadedArtifactDirs }}' | tr ',' '\n' | head -n 1)
FILE_PATH=$(ls -1 ${FIRST_DIR}/*${{ inputs.unzipPattern }} | head -n 1)
echo "filePath=$FILE_PATH" >> "$GITHUB_OUTPUT"
else
echo "Using first downloaded artifact path"
FILE_PATH=$(echo '${{ steps.download.outputs.downloadedArtifactPaths }}' | tr ',' '\n' | head -n 1)
echo "filePath=$FILE_PATH" >> "$GITHUB_OUTPUT"
fi
FILE_NAME=$(basename "$FILE_PATH")
echo "fileName=$FILE_NAME" >> "$GITHUB_OUTPUT"
shell: bash