V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aisen60
V2EX  ›  程序员

请教一下,如何在 github actions 中定时跑某个分支的任务。

  •  
  •   aisen60 ·
    Aisen60 · 2022-03-07 00:39:16 +08:00 · 1975 次点击
    这是一个创建于 783 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位大佬们,请求一个问题:如何在 github actions 中定时跑某个分支的任务。

    仓库有两个分支,一个是 dev 、另一个是 main 。dev 是主分支,main 是需要定时构建任务的分支。现在我的 yml 是这样写的:

    name: GitHub Pages
    
    on:
      push:
        branches:
          - main
      schedule:
        - cron: "0 21 * * *"
    ...
    
    

    这样写的话在凌晨 5 点左右就会执行,但是执行的内容是 dev 分支的,而不是 main 分支。

    要如何写才是 定时执行 main 分支的代码哈~

    5 条回复    2022-03-08 19:05:02 +08:00
    shadeofgod
        1
    shadeofgod  
       2022-03-07 01:14:00 +08:00
    执行的时候里面加一个切换分支的步骤

    https://github.com/actions/checkout#Checkout-a-different-branch
    lscho
        2
    lscho  
       2022-03-07 09:20:51 +08:00
    steps:
    - uses: actions/checkout@main
    jaredyam
        3
    jaredyam  
       2022-03-07 09:32:15 +08:00
    按照#1 的做法是可以的,前提是对应分支已经存在。其实直接增加一个 git checkout <branch> 的操作就可以。

    如果完成任务后需要再推送到特定分支时,不要忘了在 push 步中设置特定 branch:
    ```bash
    - name: Push changes
    uses: ad-m/[email protected]
    with:
    github_token: ${{ secrets.GITHUB_TOKEN }}
    branch: <branch>
    ```

    一个具体的例子:
    https://github.com/jaredyam/howtopronounce-readwise/blob/main/.github/workflows/cron.yml
    dany813
        4
    dany813  
       2022-03-07 14:20:36 +08:00
    这个是免费的吗
    aisen60
        5
    aisen60  
    OP
       2022-03-08 19:05:02 +08:00
    @shadeofgod @lscho @jaredyam 谢谢各位大佬们呢~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5628 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 03:20 · PVG 11:20 · LAX 20:20 · JFK 23:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.