[英]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.