From b6537e27ef71854e9a5e2cb1972a2aaf3d7b7247 Mon Sep 17 00:00:00 2001 From: whyour Date: Sun, 31 May 2026 15:04:10 +0800 Subject: [PATCH] update mirror action --- .github/workflows/build-docker-image.yml | 95 ++++++++++++++---------- 1 file changed, 55 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build-docker-image.yml b/.github/workflows/build-docker-image.yml index 5630916c..f7964132 100644 --- a/.github/workflows/build-docker-image.yml +++ b/.github/workflows/build-docker-image.yml @@ -21,14 +21,16 @@ jobs: - uses: actions/checkout@v6 with: fetch-depth: 0 - - uses: Yikun/hub-mirror-action@master - with: - src: github/whyour - dst: gitlab/whyour - dst_key: ${{ secrets.GITLAB_SSH_PK }} - dst_token: ${{ secrets.GITLAB_TOKEN }} - static_list: "qinglong" - force_update: true + - name: Push to GitLab + run: | + set +e + mkdir -p ~/.ssh + printf '%s\n' "${{ secrets.GITLAB_SSH_PK }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan -T 10 gitlab.com >> ~/.ssh/known_hosts 2>/dev/null + git remote add gitlab git@gitlab.com:whyour/qinglong.git 2>/dev/null + git push --force --all gitlab 2>&1 || echo "::warning::GitLab push failed" + git push --force --tags gitlab 2>&1 || echo "::warning::GitLab tags push failed" code_gitee: runs-on: ubuntu-latest @@ -36,7 +38,7 @@ jobs: - uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Setup SSH and push to Gitee + - name: Push to Gitee env: GITEE_TOKEN: ${{ secrets.GITEE_TOKEN }} run: | @@ -50,24 +52,15 @@ jobs: if git push --force --all gitee 2>&1; then echo "::notice::Gitee push --all succeeded" else - echo "::warning::Push --all failed, trying to create repo via API..." + echo "::warning::Push failed, trying to create repo via API..." curl -sS --connect-timeout 30 --max-time 60 \ -X POST "https://gitee.com/api/v5/user/repos" \ -H "Content-Type: application/json" \ -d '{"name":"qinglong","private":"false"}' \ "?access_token=$GITEE_TOKEN" 2>/dev/null - if git push --force --all gitee 2>&1; then - echo "::notice::Gitee push --all succeeded after repo creation" - else - echo "::warning::Gitee push --all failed after retry" - fi - fi - - if git push --force --tags gitee 2>&1; then - echo "::notice::Gitee push --tags succeeded" - else - echo "::warning::Gitee push --tags failed" + git push --force --all gitee 2>&1 && echo "::notice::Gitee push succeeded after repo creation" || echo "::warning::Gitee push failed after retry" fi + git push --force --tags gitee 2>&1 || echo "::warning::Gitee tags push failed" build-static: runs-on: ubuntu-latest @@ -106,34 +99,48 @@ jobs: needs: build-static runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - uses: Yikun/hub-mirror-action@master - with: - src: github/whyour - dst: gitlab/whyour - dst_key: ${{ secrets.GITLAB_SSH_PK }} - dst_token: ${{ secrets.GITLAB_TOKEN }} - static_list: "qinglong-static" - force_update: true + - name: Push qinglong-static to GitLab + run: | + set +e + mkdir -p ~/.ssh + printf '%s\n' "${{ secrets.GITLAB_SSH_PK }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan -T 10 gitlab.com >> ~/.ssh/known_hosts 2>/dev/null + git clone --depth=1 --single-branch https://github.com/whyour/qinglong-static.git static-mirror + cd static-mirror + git remote add gitlab git@gitlab.com:whyour/qinglong-static.git 2>/dev/null + git push --force --all gitlab 2>&1 || echo "::warning::GitLab static push failed" + git push --force --tags gitlab 2>&1 || echo "::warning::GitLab static tags push failed" static_gitee: needs: build-static runs-on: ubuntu-latest steps: - - name: Setup SSH + - name: Push qinglong-static to Gitee + env: + GITEE_TOKEN: ${{ secrets.GITEE_TOKEN }} run: | + set +e mkdir -p ~/.ssh - echo "${{ secrets.GITLAB_SSH_PK }}" > ~/.ssh/id_rsa + printf '%s\n' "${{ secrets.GITLAB_SSH_PK }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - ssh-keyscan github.com gitee.com >> ~/.ssh/known_hosts - - name: Mirror qinglong-static to Gitee - run: | - git clone --mirror https://github.com/whyour/qinglong-static.git static-mirror + ssh-keyscan -T 10 gitee.com >> ~/.ssh/known_hosts 2>/dev/null + git clone --depth=1 --single-branch https://github.com/whyour/qinglong-static.git static-mirror cd static-mirror - git remote set-url origin git@gitee.com:whyour/qinglong-static.git - git push --force --mirror + git remote add gitee git@gitee.com:whyour/qinglong-static.git 2>/dev/null + + if git push --force --all gitee 2>&1; then + echo "::notice::Gitee static push succeeded" + else + echo "::warning::Push failed, trying to create repo via API..." + curl -sS --connect-timeout 30 --max-time 60 \ + -X POST "https://gitee.com/api/v5/user/repos" \ + -H "Content-Type: application/json" \ + -d '{"name":"qinglong-static","private":"false"}' \ + "?access_token=$GITEE_TOKEN" 2>/dev/null + git push --force --all gitee 2>&1 && echo "::notice::Gitee static push succeeded after repo creation" || echo "::warning::Gitee static push failed after retry" + fi + git push --force --tags gitee 2>&1 || echo "::warning::Gitee static tags push failed" build-alpine: if: ${{ !startsWith(github.ref, 'refs/tags/') }} @@ -191,6 +198,8 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v4 + with: + cache-image: false - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 @@ -267,6 +276,8 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v4 + with: + cache-image: false - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 @@ -329,6 +340,8 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v4 + with: + cache-image: false - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 @@ -392,6 +405,8 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v4 + with: + cache-image: false - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4