mirror of
https://github.com/bitwarden/android.git
synced 2024-11-24 10:25:57 +03:00
70 lines
1.9 KiB
Bash
70 lines
1.9 KiB
Bash
|
#!/bin/bash
|
||
|
# Download Artifacts Script
|
||
|
#
|
||
|
# This script downloads build artifacts from a GitHub Actions run and processes them
|
||
|
# for consistent naming. It requires:
|
||
|
# - GitHub CLI (gh) to be installed and authenticated
|
||
|
# - Two arguments:
|
||
|
# 1. Target path where artifacts should be downloaded
|
||
|
# 2. GitHub Actions run ID to download artifacts from
|
||
|
#
|
||
|
# Example usage:
|
||
|
# ./download-artifacts.sh 2024.10.2 1234567890
|
||
|
#
|
||
|
# The script will:
|
||
|
# 1. Create the target directory if it doesn't exist
|
||
|
# 2. Download all artifacts from the specified GitHub Actions run
|
||
|
# 3. Process the artifacts to have consistent naming based on their folders
|
||
|
# 4. Move artifacts up to the target path
|
||
|
|
||
|
# Check if required arguments are provided
|
||
|
if [ $# -ne 2 ]; then
|
||
|
echo "Usage: $0 <path> <github_run_id>"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Store arguments
|
||
|
TARGET_PATH="$1"
|
||
|
GITHUB_RUN_ID="$2"
|
||
|
|
||
|
# Create target directory if it doesn't exist
|
||
|
mkdir -p "$TARGET_PATH"
|
||
|
|
||
|
# Change to target directory
|
||
|
cd "$TARGET_PATH" || exit 1
|
||
|
|
||
|
# Download artifacts using GitHub CLI
|
||
|
echo "Downloading artifacts from GitHub run $GITHUB_RUN_ID..."
|
||
|
gh run download "$GITHUB_RUN_ID"
|
||
|
|
||
|
# Process downloaded artifacts
|
||
|
for dir in */; do
|
||
|
# Skip if no directories found
|
||
|
[ -e "$dir" ] || continue
|
||
|
|
||
|
# Remove trailing slash from directory name
|
||
|
dirname=${dir%/}
|
||
|
|
||
|
# First rename all files inside directory with directory name prefix
|
||
|
for file in "$dir"*; do
|
||
|
# Skip if no files found
|
||
|
[ -e "$file" ] || continue
|
||
|
|
||
|
# Get just the filename without path
|
||
|
filename=$(basename "$file")
|
||
|
# Get just the directory name without path
|
||
|
foldername=$(basename "$dirname")
|
||
|
# Rename file with directory name prefix
|
||
|
mv "$file" "$dir${foldername}"
|
||
|
done
|
||
|
|
||
|
# Rename directory to avoid collision with files
|
||
|
mv "$dir" "${dirname}_temp"
|
||
|
|
||
|
# Move all files up from renamed directory
|
||
|
mv "${dirname}_temp"/* .
|
||
|
|
||
|
# Remove empty directory
|
||
|
rmdir "${dirname}_temp"
|
||
|
done
|