@@ -24,13 +24,56 @@ inputs:
2424 required : false
2525
2626runs :
27- using : ' docker'
28- image : ' Dockerfile'
29- entrypoint : ' /entrypoint.sh'
30- args :
31- - ${{ inputs.url }}
32- - ${{ inputs.access-key }}
33- - ${{ inputs.secret-key }}
34- - ${{ inputs.local-path }}
35- - ${{ inputs.remote-path }}
36- - ${{ inputs.policy }}
27+ using : composite
28+ steps :
29+ - name : Setup mc
30+ working-directory : /usr/local/bin
31+ run : |
32+ [ -n "$(which mc)" ] && exit 0
33+ arch=$(dpkg --print-architecture | sed 's/armhf/arm/g')
34+ sudo wget --progres=dot:binary \
35+ "https://dl.min.io/client/mc/release/linux-${arch}/mc"
36+ sudo chmod +x mc
37+ shell : bash
38+
39+ - name : Setup s3 alias
40+ run : |
41+ mc alias set s3 "${{ inputs.url }}" \
42+ "${{ inputs.access-key }}" "${{ inputs.secret-key }}"
43+ shell : bash
44+
45+ - name : Upload objects
46+ run : |
47+ local_path="${{ inputs.local-path }}"
48+ if [ "${local_path#*'*'}" != "$local_path" ]; then
49+ # Handle local_files with wildcards
50+ local_dir=$(dirname "$local_path")
51+ local_files=$(basename "$local_path")
52+ path_depth=$(echo "$local_dir" | awk -F"/" '{print NF-1}')
53+ echo "ld: $local_dir"
54+ echo "lf: $local_files"
55+ echo "pd: $path_depth"
56+ echo "-----------"
57+ IFS=$'\n'
58+ for p in $(mc find "$local_dir" \
59+ --name "$local_files" --maxdepth "$path_depth"); do
60+ echo "p: $p"
61+ echo "-----------"
62+ mc cp -r "$p" "s3/${{ inputs.remote-path }}"
63+ done
64+ unset IFS
65+ else
66+ mc cp -r "$local_path" "s3/${{ inputs.remote-path }}"
67+ fi
68+ shell : bash
69+
70+ - name : Set policy
71+ run : |
72+ if [ "${{ inputs.policy }}" = 1 ] ; then
73+ echo "Will make ${{ inputs.remote-path }} public"
74+ mc anonymous -r set download "s3/${{ inputs.remote-path }}"
75+ else
76+ echo "Will make ${{ inputs.remote-path }} private"
77+ mc anonymous -r set private "s3/${{ inputs.remote-path }}" || true
78+ fi
79+ shell : bash
0 commit comments