chore: 使用阿里云仓库 #15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Sync Drone Server | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - '.github/workflows/sync-drone-server.yml' | |
| workflow_dispatch: | |
| concurrency: | |
| group: sync-drone-server-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| sync: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| max-parallel: 2 | |
| matrix: | |
| version: | |
| - "2" | |
| - "2.28.2" | |
| steps: | |
| - name: Install skopeo | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y skopeo | |
| - name: Login to cloud | |
| env: | |
| REGISTRY: ${{ secrets.ALI_DOCKER_REPO }} | |
| USERNAME: ${{ secrets.ALI_DOCKER_USER }} | |
| PASSWORD: ${{ secrets.ALI_DOCKER_PASS }} | |
| run: | | |
| echo "$PASSWORD" | skopeo login --username "$USERNAME" --password-stdin "$REGISTRY" | |
| - name: Copy drone/drone:${{ matrix.version }} (skopeo) | |
| env: | |
| SRC: ${{ secrets.DOCKERHUB_MIRROR }}/drone/drone:${{ matrix.version }} | |
| DST: ${{ secrets.ALI_DOCKER_REPO }}/mirrors_hub/drone_server:${{ matrix.version }} | |
| run: | | |
| set -o pipefail | |
| SRC_DIGEST="$(skopeo inspect --override-arch amd64 --override-os linux --format '{{.Digest}}' "docker://$SRC" 2>/dev/null || true)" | |
| if [ -z "$SRC_DIGEST" ]; then | |
| echo "Failed to resolve source digest: $SRC" | |
| exit 1 | |
| fi | |
| DST_DIGEST="$(skopeo inspect --override-arch amd64 --override-os linux --format '{{.Digest}}' "docker://$DST" 2>/dev/null || true)" | |
| if [ -n "$DST_DIGEST" ] && [ "$SRC_DIGEST" = "$DST_DIGEST" ]; then | |
| echo "Digest unchanged ($SRC_DIGEST), skip sync." | |
| exit 0 | |
| fi | |
| skopeo copy --override-arch amd64 --override-os linux --retry-times 3 "docker://$SRC" "docker://$DST" |