Skip to content

Latest commit

 

History

History
198 lines (162 loc) · 8.73 KB

README.md

File metadata and controls

198 lines (162 loc) · 8.73 KB

Today's Weather

Hanoi, Vietnam - 19/09/2024

Moderate rain

Hour 00:0001:0002:0003:0004:0005:0006:0007:0008:0009:0010:0011:0012:0013:0014:0015:0016:0017:0018:0019:0020:0021:0022:0023:00
Weather
Condition Clear Clear Patchy rain nearbyPatchy rain nearbyPatchy rain nearbyPatchy rain nearbyPatchy rain nearbyPatchy rain nearbyPatchy rain nearbyPatchy rain nearbyPatchy rain nearbyPatchy light rainSunnyPatchy light rainPatchy rain nearbyPatchy rain nearbyPartly Cloudy Patchy rain nearbyPatchy rain nearbyPatchy rain nearbyPatchy rain nearbyCloudy Patchy rain nearbyPatchy rain nearby
Temperature 25.7 °C25.3 °C24.9 °C24.6 °C24.5 °C24.3 °C24 °C24.9 °C26.9 °C29.3 °C30.9 °C31.9 °C34.3 °C31 °C28.7 °C27.2 °C26.7 °C26.4 °C26.2 °C26.1 °C26 °C25.9 °C25.8 °C25.6 °C
Wind 8.3 kph9.4 kph10.8 kph10.8 kph12.6 kph12.6 kph11.2 kph10.8 kph11.9 kph15.1 kph19.4 kph20.9 kph17.3 kph13.7 kph13.3 kph16.9 kph12.2 kph9.4 kph4.7 kph4.3 kph5 kph7.2 kph7.6 kph6.8 kph

Weather For Next 3 days

Date 19/09/202420/09/202421/09/2024
Weather
Condition Moderate rainModerate rainHeavy rain
Temperature 24 - 32.5 °C24.6 - 28.7 °C24 - 33 °C
Wind 20.9 kph11.2 kph16.6 kph

Updated at: 2024-09-19T05:29:30Z

GitHub Actions: Embed up-to-date Weather in your README

View

You can easily embed tables in your README.md using GitHub Actions by following these simple steps:

Step 1: In your repository, create a file named README.md.template.

Step 2: Write anything you want within the README.md.template file.

Step 3: Embed one of the following entities within your README.md.template:

  • Today's Weather Table:
{{ template "hourly-table" $.TodayWeather.HourlyWeathers }}
  • Daily Weather Table:
{{ template "daily-table" .Weathers }}
  • Updated at:
{{ formatTime .UpdatedAt }}

If you are familiar with Go templates, you have access to the root variable, which includes the following fields:

  • Weathers: An array of daily Weather. You can view the Weather struct definition in model/weather.go.
  • UpdatedAt: This field contains the timestamp in the format of time.Date.

Step 4: Register Github Action

  • Create a file .github/workflows/update-weather.yml in your repository.
name: "Cronjob"
on:
schedule:
- cron: '15 * * * *'

jobs:
    update-weather:
        permissions: write-all
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v3
            - name: Generate README
              uses: huantt/weather-forecast@v1.0.5
              with:
                city: HaNoi
                days: 7
                weather-api-key: ${{ secrets.WEATHER_API_KEY }}
                template-file: 'README.md.template'
                out-file: 'README.md'
            - name: Commit
              run: |
                if git diff --exit-code; then
                  echo "No changes to commit."
                  exit 0
                else
                  git config user.name github-actions
                  git config user.email github-actions@github.com
                  git add .
                  git commit -m "update"
                  git push origin main
                fi
  • Update some variable in this file:
    • city: The city that you want to forecast weather
    • days: number of forecast days
    • template-file: Path to the above template file. Eg. template/README.md.template
    • out-file: your README.md file name
    • weather-api-key:
      • Register free API key in https://weatherapi.com
      • Setup secrets with name WEATHER_API_KEY in Your repo > settings > Secrets and variables > Actions > New repository secret

Step 5: Commit your change, then Github actions will run as your specificed cron to update Weather into your README.md file

Usage

View

Install

go install https://github.com/huantt/weather-forecast

Run

Usage:
weather-forecast update-weather [flags]

Flags:
--city string              City
--days int                 Days of forecast (default 7)
-h, --help                     help for update-weather
-o, --out-file string          Output file path
-f, --template-file string     Readme template file path
-k, --weather-api-key string   weatherapi.com API key

Sample

weather-forecast update-weather \
--days=7 \
--weather-api-key="$WEATHER_API_KEY" \
--template-file='template/README.md.template' \
--city=HaNoi \
--out-file='README.md'

Docker

docker build -t weather-forecast .
docker run --rm \
-v ./:/app/data \
weather-forecast \
--weather-api-key='XXXX' \
--city=HaNoi \
--out-file=data/README.md \
--template-file=data/README.md.template