簡體   English   中英

GitHub 操作在合並時運行兩次

[英]GitHub action runs twice on merge

我有一個構建和部署 GitHub 操作,在我更新我的 GitHub 頁面存儲庫時運行。 此外,我還有一個使用 I store 更新食譜的工具。

大多數時候它運行良好,但偶爾我從我的手機(使用工作副本)更新並進行合並,然后每個操作運行兩次,所有這些操作都由同一個推送觸發。 配方更新操作兩次都成功。

然而,當發生這種情況時,構建和部署操作之一會失敗,並顯示類似“:[遠程拒絕] master -> gh-pages(無法鎖定 ref'refs/heads/gh-pages':位於 37c581108d857f9d9c8fe584103d78e4473d280b 但預期為 ceaf2249cc2f7864f0269e64d372fc6e0ce)0b”0b

它不會破壞任何東西,但我不確定為什么會發生,我想修復它。

構建和部署


on:
  push:
    branches:
      - main
  schedule:
    - cron:  '0 */2 * * *'
  workflow_dispatch:


jobs:

  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v2
        with:
          persist-credentials: false

      - name: Setup Python Environment
        uses: actions/setup-python@v2
        with:
          python-version: 3.8
        
      - name: Install Requirements
        run: pip install -r requirements.txt

      - name: Execute Python script
        run: |
          python3 -m papexp
        env:
          EMAIL: ${{ secrets.EMAIL }}
          PASSWORD: ${{ secrets.PASSWORD }}

      - name: setup git config
        run: |
          git config --local user.name ${{ secrets.USERNAME_GITHUB }}
          git config --local user.email ${{ secrets.EMAIL }}
          git pull --ff-only origin main
          git add images/recipes/*
          git add .
          git commit -am "Update recipes" || echo "Nothing to update"
      - name: Push changes
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: ${{ github.ref }}

我認為該操作不會因為一次推送而運行兩次,而且我認為這與您是否從手機更新無關。

當您推送到 main 時,您的操作會運行,但它也會每 2 小時運行一次。 因此,當推送觸發的操作與計划操作同時運行時,有時您會遇到沖突。

如果您需要在兩種情況下(觸發和計划)運行該操作,並且如果偶爾的碰撞不會給您帶來問題,我只是忍受它 TBH。 嘗試實現某種鎖定機制來避免沖突可能會付出更多的努力而不值得。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM