name: Docker Pull and Package

on:
  workflow_dispatch:
    inputs:
      docker_images:
        description: 'Comma-separated list of Docker images to pull'
        required: true
        default: 'wukongdaily/box:latest,haroldli/xiaoya-tvbox:latest'
      platform:
        description: 'Platform architecture (e.g., amd64, arm64)'
        required: true
        default: 'amd64'

jobs:
  pull_and_package:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v1

    - name: Pull, Save, and Compress Docker Images
      run: |
        images="${{ github.event.inputs.docker_images }}"
        platform="${{ github.event.inputs.platform }}"
        IFS=',' read -r -a image_array <<< "$images"
        for image in "${image_array[@]}"; do
          echo "Pulling $image for platform $platform"
          docker pull --platform "$platform" "$image"
          image_name="${image//\//_}_${platform}"
          docker save "$image" -o "${image_name}.tar"
          tar -czf "${image_name}.tar.gz" "${image_name}.tar"
          rm -f "${image_name}.tar"
        done

    - name: Clean up intermediate files
      run: |
        rm -f *.tar

    - name: Upload artifacts
      uses: actions/upload-artifact@v2
      with:
        name: docker-images-tar
        path: '*.tar.gz'