方案一:调整 cron 时间 设置为早上7:00运行


name: Daily CF App Start

on:
  schedule:
    # UTC时间23:00 = 北京时间次日07:00
    - cron: "0 23 * * *"
  workflow_dispatch:   # 支持手动触发

jobs:
  run-cf:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Install Cloud Foundry CLI
        run: |
          sudo apt-get update
          sudo apt-get install -y wget
          wget -q -O cf-cli.deb "https://packages.cloudfoundry.org/stable?release=debian64&source=github"
          sudo dpkg -i cf-cli.deb
          cf --version

      - name: Login to Cloud Foundry
        env:
          CF_API: https://api.cf.us10-001.hana.ondemand.com
          CF_USERNAME: ${{ secrets.CF_USERNAME }}
          CF_PASSWORD: ${{ secrets.CF_PASSWORD }}
          CF_ORG: 405a27abtrial
          CF_SPACE: dev
        run: |
          cf api $CF_API --skip-ssl-validation
          cf auth "$CF_USERNAME" "$CF_PASSWORD"
          cf target -o "$CF_ORG" -s "$CF_SPACE"

      - name: Start App
        env:
          CF_APP: ng7
        run: |
          cf start "$CF_APP" || cf restart "$CF_APP"

方案二:设置时区环境变量

如果你的服务器特意设置为亚洲/上海(Asia/Shanghai)时区,那么系统时间就是北京时间。

在这种情况下,0 7 * * * 就是北京时间的早上 7 点。


name: Daily CF App Start

on:
  schedule:
    # 这个7点会被TZ时区设置解释为北京时间07:00
    - cron: "0 7 * * *"
  workflow_dispatch:   # 支持手动触发

jobs:
  run-cf:
    runs-on: ubuntu-latest
    env:
      TZ: Asia/Shanghai  # 关键设置:指定时区为北京时间

    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Install Cloud Foundry CLI
        run: |
          sudo apt-get update
          sudo apt-get install -y wget
          wget -q -O cf-cli.deb "https://packages.cloudfoundry.org/stable?release=debian64&source=github"
          sudo dpkg -i cf-cli.deb
          cf --version

      - name: Login to Cloud Foundry
        env:
          CF_API: https://api.cf.us10-001.hana.ondemand.com
          CF_USERNAME: ${{ secrets.CF_USERNAME }}
          CF_PASSWORD: ${{ secrets.CF_PASSWORD }}
          CF_ORG: 405a27abtrial
          CF_SPACE: dev
        run: |
          cf api $CF_API --skip-ssl-validation
          cf auth "$CF_USERNAME" "$CF_PASSWORD"
          cf target -o "$CF_ORG" -s "$CF_SPACE"

      - name: Start App
        env:
          CF_APP: ng7
        run: |
          cf start "$CF_APP" || cf restart "$CF_APP"


转载请注明出处