diff --git a/.github/workflows/sync.yaml b/.github/workflows/sync.yaml index 7c49a16..e5e6f30 100644 --- a/.github/workflows/sync.yaml +++ b/.github/workflows/sync.yaml @@ -4,36 +4,42 @@ permissions: contents: write on: - schedule: - - cron: "0 0 * * *" # every day workflow_dispatch: + inputs: + manual-trigger: + description: 'This will pull the upstream code while preserving your configuration file. Configuration file compatibility is not guaranteed, and you may need to manually update the configuration file after pulling.' + type: boolean + required: true + default: false jobs: sync_latest_from_upstream: name: Sync latest commits from upstream repo runs-on: ubuntu-latest - if: ${{ github.event.repository.fork }} steps: - # Step 1: run a standard checkout action - name: Checkout target repo uses: actions/checkout@v3 - # Step 2: run the sync action + - name: Current config + run: | + cat uptime.config.ts + cp uptime.config.ts /tmp/origin.config.ts + - name: Sync upstream changes id: sync - uses: aormsby/Fork-Sync-With-Upstream-action@v3.4 - with: - upstream_sync_repo: lyc8503/UptimeFlare - upstream_sync_branch: main - target_sync_branch: main - target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set - - # Set test_mode true to run tests instead of the true action!! - test_mode: false - - - name: Sync check - if: failure() run: | - echo "[Error] 由于上游仓库的 workflow 文件变更,导致 GitHub 自动暂停了本次自动更新,你需要手动 Sync Fork 一次。 - exit 1 + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + # Fetch latest code + git clone https://github.com/lyc8503/UptimeFlare /tmp/latest + rm -rf /tmp/latest/.git + + # Clean current repo and update + git rm -rf '*' + cp -r /tmp/latest/. . + cp /tmp/origin.config.ts uptime.config.ts + git add . + git commit -m "Sync latest code from upstream" + git push