Add sync target job (#350)

This commit is contained in:
Shiming Zhang 2023-09-11 18:59:12 +08:00 committed by GitHub
parent cd0d3ed991
commit 7fde81c2b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 84 additions and 0 deletions

13
.github/ISSUE_TEMPLATE/sync-image.md vendored Normal file
View File

@ -0,0 +1,13 @@
---
name: SYNC IMAGE
about: 主动同步指定镜像
title: SYNC IMAGE
labels: ''
assignees: ''
---
SYNC docker.io/library/busybox:latest
请修改上面的内容,将 `docker.io/library/busybox:latest` 改为你要同步的镜像

71
.github/workflows/target-image-sync.yml vendored Normal file
View File

@ -0,0 +1,71 @@
name: Target Sync Image
on:
issues:
types:
- opened
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
permissions:
issues: write
jobs:
sync:
runs-on: ubuntu-latest
if: github.event.issue.title == 'SYNC IMAGE'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Check Issue
run: |
IMAGE=$(echo "${{ github.event.issue.body }}" | grep SYNC | awk '{print $2}' | head -n 1)
if [[ -z "${IMAGE}" ]]; then
gh issue comment ${{ github.event.issue.number }} -b "找不到镜像呢"
gh issue edit ${{ github.event.issue.number }} --title "FAILED SYNC IMAGE"
gh issue close ${{ github.event.issue.number }} --reason "not planned"
exit 1
fi
if [[ "${IMAGE}" == "*" ]]; then
gh issue comment ${{ github.event.issue.number }} -b "镜像 ${IMAGE} 不存在呢"
gh issue edit ${{ github.event.issue.number }} --title "FAILED SYNC IMAGE"
gh issue close ${{ github.event.issue.number }} --reason "not planned"
exit 1
fi
if [[ "${IMAGE}" != *":"* ]]; then
gh issue comment ${{ github.event.issue.number }} -b "镜像 ${IMAGE} 不存在呢, 请指定 tag"
gh issue edit ${{ github.event.issue.number }} --title "FAILED SYNC IMAGE"
gh issue close ${{ github.event.issue.number }} --reason "not planned"
exit 1
fi
gh issue comment ${{ github.event.issue.number }} -b "镜像 ${IMAGE} 同步中..."
gh issue edit ${{ github.event.issue.number }} --title "SYNC IMAGE ${IMAGE}"
- name: Start Proxy
env:
only_proxy: "m.daocloud.io"
run: |
wget https://github.com/wzshiming/bridge/releases/download/v0.7.13/bridge_linux_amd64 -O /usr/local/bin/bridge && chmod +x /usr/local/bin/bridge
nohup /usr/local/bin/bridge -b :8080 -p - ${{ secrets.PROTOCOL }} 2>/dev/null &
- name: Check Proxy
run: |
curl -v http://127.0.0.1:8080 || exit 1
curl -f --proxy 127.0.0.1:8080 -v http://m.daocloud.io/v2/ || exit 1
- name: Override mirror.txt
run: |
IMAGE=$(echo "${{ github.event.issue.body }}" | grep SYNC | awk '{print $2}' | head -n 1)
echo ${IMAGE} > mirror.txt
- name: Sync Images
env:
INCREMENTAL: "true"
SYNC: "true"
PARALLET: "1"
http_proxy: socks5://127.0.0.1:8080
https_proxy: socks5://127.0.0.1:8080
run: |
./hack/diff.sh
- name: Close Issue
run: |
IMAGE=$(echo "${{ github.event.issue.body }}" | grep SYNC | awk '{print $2}' | head -n 1)
gh issue comment ${{ github.event.issue.number }} -b "镜像 ${IMAGE} 同步完成<br>请使用 m.daocloud.io/${IMAGE} 替代源镜像"
gh issue close ${{ github.event.issue.number }} --reason "completed"