mirror of
				https://github.com/DaoCloud/public-image-mirror.git
				synced 2025-10-31 13:49:22 +08:00 
			
		
		
		
	Add workflows
This commit is contained in:
		
							
								
								
									
										27
									
								
								.github/workflows/sync-workflows.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								.github/workflows/sync-workflows.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| name: "Sync Workflows" | ||||
| on: | ||||
|   workflow_dispatch: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|     paths: | ||||
|       - "mirror.txt" | ||||
| jobs: | ||||
|   sync-workflows: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v2 | ||||
|       - name: Generate | ||||
|         run: | | ||||
|           git rm -f .github/workflows/mirror-*.yml || true | ||||
|           ./hack/generate-workflow.sh | ||||
|       - name: Sync | ||||
|         env: | ||||
|           GH_TOKEN: "${{ secrets.GH_TOKEN }}" # Permission to operate Workflows is required | ||||
|         run: | | ||||
|           git add .github/workflows/mirror-*.yml && git commit -m "Generate Workflow YAML" && { | ||||
|             git config --global user.name "bot" | ||||
|             SOURCE=$(git remote get-url origin | sed -E 's#git@(.+):(.+)#https://\1/\2#g' | sed "s#https://github.com#https://bot:${GH_TOKEN}@github.com#g") | ||||
|             git remote add upstream "${SOURCE}" | ||||
|             git push upstream main | ||||
|           } | ||||
							
								
								
									
										39
									
								
								hack/generate-workflow.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										39
									
								
								hack/generate-workflow.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| set -o errexit | ||||
| set -o nounset | ||||
| set -o pipefail | ||||
|  | ||||
| cat ./mirror.txt | while read line; do | ||||
|   line="${line// /}" | ||||
|   if [[ "${line}" == "#"* ]] || [[ "${line}" == "" ]]; then | ||||
|     continue | ||||
|   fi | ||||
|  | ||||
|   host="${line%%/*}" | ||||
|   image="${line#*/}" | ||||
|   workflow=".github/workflows/mirror-${host//./-}-${image//\//-}.yml" | ||||
|  | ||||
|   cat <<EOF >"${workflow}" | ||||
| name: "Sync ${host}/${image}" | ||||
| on: | ||||
|   workflow_dispatch: | ||||
|   schedule: | ||||
|     - cron: "0 0 * * *" | ||||
|  | ||||
| jobs: | ||||
|   sync-image: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|     - name: Sync | ||||
|       env: | ||||
|         CREDS: "\${{ secrets.CREDS }}" | ||||
|         MIRROR: "\${{ secrets.MIRROR }}" | ||||
|       run: | | ||||
|         docker run --rm -it ananace/skopeo \\ | ||||
|           sync --src docker --dest docker --dest-tls-verify=false --dest-creds "\${CREDS}" -f oci \\ | ||||
|           "${host}/${image}" "\${MIRROR}/${image}" | ||||
|  | ||||
| EOF | ||||
|  | ||||
| done | ||||
		Reference in New Issue
	
	Block a user