add upload action
This commit is contained in:
50
action.yml
Normal file
50
action.yml
Normal file
@ -0,0 +1,50 @@
|
||||
name: "Artifacts upload"
|
||||
author: "rps"
|
||||
description: "Action to upload cicd artifacts"
|
||||
inputs:
|
||||
name:
|
||||
description: artifact name
|
||||
required: true
|
||||
default: 'artifact'
|
||||
path:
|
||||
description: list of paths to upload as artifacts
|
||||
required: true
|
||||
retention-days:
|
||||
description: >
|
||||
Duration after which artifact will expire in days. 0 means using default retention.
|
||||
|
||||
Minimum 1 day.
|
||||
Maximum 90 days unless changed from the repository settings page.
|
||||
default: 30
|
||||
token:
|
||||
description: token to authenticate to gitea
|
||||
required: true
|
||||
default: ${{ github.token }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: upload artifacts
|
||||
shell: sh
|
||||
run: |
|
||||
curl --fail -v -D /dev/stdout -o resp0.json --header "Authorization: Bearer ${{ inputs.token }}" \
|
||||
-X POST --data '{"Type":"actions_storage","Name":"${{ inputs.name }}"}' \
|
||||
"${{ gitea.server_url }}/api/actions_pipeline/_apis/pipelines/workflows/${{ gitea.run_id }}/artifacts?api-version=6.0-preview"
|
||||
cat resp0.json
|
||||
UPLOAD_URL=$(jq -r '.fileContainerResourceUrl' resp0.json)
|
||||
for artifact in ${{ inputs.path }}; do
|
||||
content_length=$(ls -l "$artifact" | awk '{print $5}')
|
||||
md5=$(cksum -a md5 --base64 --untagged "$artifact" | awk '{print $1}')
|
||||
curl --fail -v -D /dev/stdout -o resp1.json --header "Authorization: Bearer ${{ inputs.token }}" \
|
||||
--header "x-actions-results-md5: $md5" \
|
||||
--header "x-tfs-filelength: ${content_length}" \
|
||||
--header "content-range: bytes 0-$((content_length-1))/${content_length}" \
|
||||
-X PUT --data-binary "@$artifact" \
|
||||
"${UPLOAD_URL}?retentionDays=${{ inputs.retention-days }}&itemPath=${{ inputs.name }}%2F$artifact"
|
||||
cat resp1.json
|
||||
curl --fail -v -D /dev/stdout -o resp2.json --header "Authorization: Bearer ${{ inputs.token }}" \
|
||||
-X PATCH \
|
||||
"${{ gitea.server_url }}/api/actions_pipeline/_apis/pipelines/workflows/${{ gitea.run_id }}/artifacts?api-version=6.0-preview&artifactName=${{ inputs.name }}"
|
||||
cat resp2.json
|
||||
rm resp1.json resp2.json
|
||||
done
|
||||
rm resp0.json
|
||||
Reference in New Issue
Block a user