mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2025-04-28 11:59:48 +00:00
Fixed the bash-while-subshell problem
This commit is contained in:
parent
308e27b981
commit
dfe06c0747
35
.github/workflows/build-and-release.yml
vendored
35
.github/workflows/build-and-release.yml
vendored
@ -441,17 +441,23 @@ jobs:
|
|||||||
FORMATTED_VERSION: ${{ needs.read_metadata.outputs.formatted_version }}
|
FORMATTED_VERSION: ${{ needs.read_metadata.outputs.formatted_version }}
|
||||||
|
|
||||||
run: |
|
run: |
|
||||||
|
# Export the necessary variables for xargs:
|
||||||
|
export GITHUB_WORKSPACE
|
||||||
|
export FORMATTED_VERSION
|
||||||
|
export platforms_json
|
||||||
|
|
||||||
# Here, we create the JSON object:
|
# Here, we create the JSON object:
|
||||||
platforms_json=$(jq -n '{}')
|
platforms_json=$(jq -n '{}')
|
||||||
|
|
||||||
# Iterate over all signature files:
|
# Function to process each signature file
|
||||||
find $GITHUB_WORKSPACE/artifacts -type f -name '*.sig' -print0 | while IFS= read -r -d '' sig_file; do
|
process_signature() {
|
||||||
|
sig_file="$1"
|
||||||
|
|
||||||
echo "Processing signature file '$sig_file':"
|
echo "Processing signature file '$sig_file':"
|
||||||
|
|
||||||
# Extract the platform directory. First, we start at the location of the signature file:
|
# Extract the platform directory. First, we start at the location of the signature file:
|
||||||
platform_dir=$(dirname "$sig_file")
|
platform_dir=$(dirname "$sig_file")
|
||||||
|
|
||||||
# Iterate up the directory tree until we find the platform file.
|
# Iterate up the directory tree until we find the platform file.
|
||||||
# When we reach the artifacts directory, we stop.
|
# When we reach the artifacts directory, we stop.
|
||||||
while [[ "$platform_dir" != "$GITHUB_WORKSPACE/artifacts" ]]; do
|
while [[ "$platform_dir" != "$GITHUB_WORKSPACE/artifacts" ]]; do
|
||||||
@ -459,31 +465,36 @@ jobs:
|
|||||||
echo " Found platform file in '$platform_dir/.updates/platform' for signature file '$sig_file'."
|
echo " Found platform file in '$platform_dir/.updates/platform' for signature file '$sig_file'."
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Go up one directory level:
|
# Go up one directory level:
|
||||||
platform_dir=$(dirname "$platform_dir")
|
platform_dir=$(dirname "$platform_dir")
|
||||||
echo " Going up to '$platform_dir'."
|
echo " Going up to '$platform_dir'."
|
||||||
done
|
done
|
||||||
|
|
||||||
# Ensure that we found the platform file:
|
# Ensure that we found the platform file:
|
||||||
if [[ -f "$platform_dir/.updates/platform" ]]; then
|
if [[ -f "$platform_dir/.updates/platform" ]]; then
|
||||||
|
|
||||||
# Read the platform and signature:
|
# Read the platform and signature:
|
||||||
platform=$(cat "$platform_dir/.updates/platform")
|
platform=$(cat "$platform_dir/.updates/platform")
|
||||||
signature=$(cat "$sig_file")
|
signature=$(cat "$sig_file")
|
||||||
|
|
||||||
# Extract the artifact name and create the URL:
|
# Extract the artifact name and create the URL:
|
||||||
artifact_name=$(basename "$sig_file" .sig)
|
artifact_name=$(basename "$sig_file" .sig)
|
||||||
url="https://github.com/MindWorkAI/AI-Studio/releases/download/$FORMATTED_VERSION/$artifact_name"
|
url="https://github.com/MindWorkAI/AI-Studio/releases/download/$FORMATTED_VERSION/$artifact_name"
|
||||||
|
|
||||||
# Build the JSON object:
|
# Build the JSON object:
|
||||||
platforms_json=$(echo "$platforms_json" | jq --arg platform "$platform" --arg signature "$signature" --arg url "$url" '.[$platform] = {"signature": $signature, "url": $url}')
|
platforms_json=$(echo "$platforms_json" | jq --arg platform "$platform" --arg signature "$signature" --arg url "$url" '.[$platform] = {"signature": $signature, "url": $url}')
|
||||||
|
|
||||||
else
|
else
|
||||||
echo " Error: Could not find the platform file for the signature file '$sig_file'."
|
echo " Error: Could not find the platform file for the signature file '$sig_file'."
|
||||||
fi
|
fi
|
||||||
done
|
}
|
||||||
|
|
||||||
|
# Export the function to make it available to xargs:
|
||||||
|
export -f process_signature
|
||||||
|
|
||||||
|
# Iterate over all signature files using find and xargs:
|
||||||
|
find $GITHUB_WORKSPACE/artifacts -type f -name '*.sig' -print0 | xargs -0 -I {} bash -c 'process_signature "$@"' _ {}
|
||||||
echo "Platforms JSON: '$platforms_json'"
|
echo "Platforms JSON: '$platforms_json'"
|
||||||
|
|
||||||
# Write the JSON object to a temporary file:
|
# Write the JSON object to a temporary file:
|
||||||
|
Loading…
Reference in New Issue
Block a user