Skip to content

Hourly Pipeline

Hourly Pipeline #4015

Workflow file for this run

name: Hourly Pipeline
on:
workflow_dispatch:
schedule:
- cron: "10 * * * *"
jobs:
generate-hourly-fgb:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Build docker image
run: docker build -t gradient-pipeline ./pipeline
- name: set date
id: set_date
run: |
DATE_TWO_DAYS_AGO=$(date -d "2 days ago" +%Y-%m-%d)
echo "DATE_TWO_DAYS_AGO=$DATE_TWO_DAYS_AGO" >> $GITHUB_OUTPUT
- name: set hour
id: set_hour
run: |
HOUR_TWO_DAYS_AGO=$(date -d "2 days ago" +%H)
echo "HOUR_TWO_DAYS_AGO=$HOUR_TWO_DAYS_AGO" >> $GITHUB_OUTPUT
- name: Check if the date and hour are set
run: cat $GITHUB_OUTPUT
- name: process changesets for the hour ${{ steps.set_hour.outputs.HOUR_TWO_DAYS_AGO }}:00 on ${{ steps.set_date.outputs.DATE_TWO_DAYS_AGO }}
run: |
docker run -v ./data:/tmp gradient-pipeline sh -c "node cli.js process-hour $DATE_TWO_DAYS_AGO $HOUR_TWO_DAYS_AGO"
env:
DATE_TWO_DAYS_AGO: ${{ steps.set_date.outputs.DATE_TWO_DAYS_AGO }}
HOUR_TWO_DAYS_AGO: ${{ steps.set_hour.outputs.HOUR_TWO_DAYS_AGO }}
- name: convert to fgb for the hour ${{ steps.set_hour.outputs.HOUR_TWO_DAYS_AGO }}:00 on ${{ steps.set_date.outputs.DATE_TWO_DAYS_AGO }}
run: |
docker run -v ./data:/tmp gradient-pipeline sh -c "ogr2ogr -f FlatGeobuf /tmp/${DATE_TWO_DAYS_AGO}T${HOUR_TWO_DAYS_AGO}:00.fgb /tmp/${DATE_TWO_DAYS_AGO}T${HOUR_TWO_DAYS_AGO}/${DATE_TWO_DAYS_AGO}T${HOUR_TWO_DAYS_AGO}:00.geojson -skipfailures"
env:
DATE_TWO_DAYS_AGO: ${{ steps.set_date.outputs.DATE_TWO_DAYS_AGO }}
HOUR_TWO_DAYS_AGO: ${{ steps.set_hour.outputs.HOUR_TWO_DAYS_AGO }}
- name: Check if the pipeline ran successfully
run: ls -lh ./data/*.fgb
- name: Authenticate with GCP
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}
- name: Upload to GCS
uses: google-github-actions/upload-cloud-storage@v2
with:
path: data
destination: osm-tardis
parent: false
glob: '*.fgb'
gzip: false
headers: |-
content-type: application/octet-stream