Skip to content

improving the file cloudflare.yml #22

@SophiaLi20

Description

@SophiaLi20

we can make this metrics/.github/workflows
/get-cloudflare.yml code more enhance for better maintainability, clarity, and functionality

name: Fetch Cloudflare Data

on:
  schedule:
    # Run at 6:00 AM UTC daily
    - cron: '0 6 * * *'

jobs:
  fetch-cloudflare-data:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout Repository
      uses: actions/checkout@v3

    - name: Set up Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '16.x' # Use a more recent Node.js version if supported

    - name: Install Dependencies
      run: npm install

    - name: Fetch Cloudflare Data
      env:
        CLOUDFLARE_ZONE_TAG: ${{ secrets.CLOUDFLARE_ZONE_TAG }}
        CLOUDFLARE_EMAIL: ${{ secrets.CLOUDFLARE_EMAIL }}
        CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }}
      run: npm run get-cloudflare

    - name: Check for Changes
      run: |
        git status
        if git diff --quiet; then
          echo "No changes detected. Exiting..."
          exit 0
        fi

    - name: Stage and Commit Changes
      run: |
        git config --local user.name "ocf-bot"
        git config --local user.email "info@openclimatefix.org"
        git add .
        git commit -m "🗃 Add latest Cloudflare data"

    - name: Fetch and Rebase Main
      run: |
        git fetch origin main
        git pull --rebase origin main

    - name: Push Changes to Main
      run: git push origin HEAD:main

The key improvements in this code are :-

  1. Node.js Version: Updated to setup-node@v3 and a newer Node.js version for better support and security.
  2. Check for Changes: Prevents unnecessary commits if there are no changes.
  3. Rebase Workflow: Keeps the local branch in sync with main before pushing changes

This wil help in workflow is up-to-date, efficient, and avoids redundant commits and pushes.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions