From 07201a0554ee6f3d68c46ebf01d9f8c0e66113ac Mon Sep 17 00:00:00 2001 From: madonuko Date: Fri, 13 Dec 2024 01:30:18 +0800 Subject: [PATCH] feat(ci): fix bugs with update backporting, add weekly mode --- .github/workflows/autobuild.yml | 3 +- .github/workflows/update-branch.yml | 2 +- .github/workflows/update-nightly.yml | 3 +- .github/workflows/update-weekly.yml | 53 ++++++++++++++++++++++++++++ .github/workflows/update.yml | 7 ++-- 5 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/update-weekly.yml diff --git a/.github/workflows/autobuild.yml b/.github/workflows/autobuild.yml index 9f56777eb0..26be284080 100644 --- a/.github/workflows/autobuild.yml +++ b/.github/workflows/autobuild.yml @@ -44,7 +44,7 @@ jobs: fail-fast: false runs-on: ${{ matrix.pkg.arch == 'aarch64' && 'ARM64' || matrix.pkg.labels['large'] && 'x86-64-lg' || 'ubuntu-latest' }} container: - image: ghcr.io/terrapkg/builder:f${{ matrix.version}} + image: ghcr.io/terrapkg/builder:f${{ matrix.version }} options: --cap-add=SYS_ADMIN --privileged steps: - name: Checkout @@ -55,6 +55,7 @@ jobs: - name: Checkout latest Mock configs uses: actions/checkout@v4 with: + fetch-depth: 0 repository: terrapkg/mock-configs path: mock-configs diff --git a/.github/workflows/update-branch.yml b/.github/workflows/update-branch.yml index a4b1ec1587..e3ac1bfe46 100644 --- a/.github/workflows/update-branch.yml +++ b/.github/workflows/update-branch.yml @@ -14,7 +14,7 @@ jobs: - f39 - f40 - f41 - - el9 + - el10 container: image: ghcr.io/terrapkg/builder:frawhide options: --cap-add=SYS_ADMIN --privileged diff --git a/.github/workflows/update-nightly.yml b/.github/workflows/update-nightly.yml index d35eda3e47..3be46c5377 100644 --- a/.github/workflows/update-nightly.yml +++ b/.github/workflows/update-nightly.yml @@ -25,9 +25,10 @@ jobs: git config --global --add safe.directory "$GITHUB_WORKSPACE" - name: Run Nightly Update - run: anda update -vv --filters nightly=1 + run: anda update -v --filters nightly=1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RUST_BACKTRACE: full - name: Save run: | diff --git a/.github/workflows/update-weekly.yml b/.github/workflows/update-weekly.yml new file mode 100644 index 0000000000..eba5835d6d --- /dev/null +++ b/.github/workflows/update-weekly.yml @@ -0,0 +1,53 @@ +name: Weekly Update +on: + schedule: + - cron: "0 0 * * 0" + workflow_dispatch: + +jobs: + autoupdate: + runs-on: ubuntu-latest + container: + image: ghcr.io/terrapkg/builder:frawhide + options: --cap-add=SYS_ADMIN --privileged + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }} + + - name: Install SSH signing key & Set up git repository + run: | + mkdir -p ${{ runner.temp }} + echo "${{ secrets.SSH_SIGNING_KEY }}" > ${{ runner.temp }}/signing_key + chmod 0700 ${{ runner.temp }}/signing_key + git config --global --add safe.directory "$GITHUB_WORKSPACE" + + - name: Run Weekly Update + run: anda update -v --filters weekly=1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RUST_BACKTRACE: full + + - name: Save + run: | + if [[ `git status --porcelain` ]]; then + git config user.name "Raboneko" + git config user.email "raboneko@fyralabs.com" + git config gpg.format "ssh" + git config user.signingkey "${{ runner.temp }}/signing_key" + msg="bump(weekly): $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')" + git commit -S -a -m "$msg" + git format-patch HEAD^ + copy_over () { + git checkout $1 + git apply *.patch || true + git add anda + git commit -S -a -m "$msg" + } + copy_over f39 || true + copy_over f40 || true + copy_over f41 || true + git push -u origin --all + fi diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index fb7265809c..3e6e3670c2 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -25,7 +25,7 @@ jobs: git config --global --add safe.directory "$GITHUB_WORKSPACE" - name: Run Update - run: anda update -vv --excludes nightly=1 --excludes updbranch=1 + run: anda update -v --excludes nightly=1 --excludes weekly=1 --excludes updbranch=1 env: GITHUB_TOKEN: ${{ secrets.AUTOUPDATE_GH_TOKEN }} RUST_BACKTRACE: full @@ -39,12 +39,11 @@ jobs: git config user.signingkey "${{ runner.temp }}/signing_key" msg="bump: $(git status | grep modified | sed -r 's@.+/([^/]+)/[^/]+\n?@\1 @g' | tr -d '\n')" git commit -S -a -m "$msg" + git format-patch HEAD^ copy_over () { - git format-patch HEAD^ git checkout $1 git apply *.patch || true - rm *.patch - git add * + git add anda git commit -S -a -m "$msg" } copy_over f39 || true