name: Docker

on:
  workflow_dispatch:
  push:
    branches: [ main ]


env:
  ALIYUN_REGISTRY: "${{ secrets.ALIYUN_REGISTRY }}"
  ALIYUN_NAME_SPACE: "${{ secrets.ALIYUN_NAME_SPACE }}"
  ALIYUN_REGISTRY_USER: "${{ secrets.ALIYUN_REGISTRY_USER }}"
  ALIYUN_REGISTRY_PASSWORD: "${{ secrets.ALIYUN_REGISTRY_PASSWORD }}"

jobs:

  build:
    name: Pull
    runs-on: ubuntu-latest
    steps:
    - name: Setup Docker buildx
      uses: docker/setup-buildx-action@79abd3f86f79a9d68a23c75a09a9a85889262adf

    - name: Check out code
      uses: actions/checkout@v2

    - name: Build and push image Aliyun
      run: |
        docker login -u $ALIYUN_REGISTRY_USER -p $ALIYUN_REGISTRY_PASSWORD $ALIYUN_REGISTRY
        while IFS= read -r line; do
          [[ -z "$line" ]] && continue
          echo "docker pull $line"
          docker pull $line
          # 获取镜像的完整名称,例如kasmweb/nginx:1.25.3(命名空间/镜像名:版本号)
          image=$(echo "$line" | awk '{print $NF}')
          # 获取 镜像名:版本号  例如nginx:1.25.3
          image_name_tag=$(echo "$image" | awk -F'/' '{print $NF}')
          new_image="$ALIYUN_REGISTRY/$ALIYUN_NAME_SPACE/$image_name_tag"
          echo "docker tag $image $new_image"
          docker tag $image $new_image
          echo "docker push $new_image"
          docker push $new_image
        done < images.txt