Skip to content

Commit 6383848

Browse files
committed
refactor date handling in github action
1 parent 6737b02 commit 6383848

File tree

2 files changed

+38
-28
lines changed

2 files changed

+38
-28
lines changed

.github/workflows/pipeline.yaml

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -23,45 +23,54 @@ jobs:
2323
- name: set date
2424
id: set_date
2525
run: |
26-
current_date=$(date +%Y-%m-%d)
27-
echo "CURRENT_DATE=$current_date" >> $GITHUB_OUTPUT
26+
DATE_TWO_HOURS_AGO=$(date -d "2 hours ago" +%Y-%m-%d)
27+
echo "DATE_TWO_HOURS_AGO=$DATE_TWO_HOURS_AGO" >> $GITHUB_OUTPUT
2828
29-
- name: set hour minus two
29+
- name: set hour
3030
id: set_hour
3131
run: |
32-
current_hour=$(date +%H)
33-
hour_minus_two=$((current_hour - 2))
34-
echo "CURRENT_HOUR=$current_hour" >> $GITHUB_OUTPUT
35-
echo "HOUR_MINUS_TWO=$hour_minus_two" >> $GITHUB_OUTPUT
32+
HOUR_TWO_HOURS_AGO=$(date -d "2 hours ago" +%H)
33+
echo "HOUR_TWO_HOURS_AGO=$HOUR_TWO_HOURS_AGO" >> $GITHUB_OUTPUT
3634
37-
- name: process changesets for the hour ${{ steps.set_hour.outputs.HOUR_MINUS_TWO }}:00 on ${{ steps.set_date.outputs.CURRENT_DATE }}
38-
run: |
39-
docker run -v ./data:/tmp gradient-pipeline sh -c "node cli.js process-hour $CURRENT_DATE $HOUR_MINUS_TWO"
40-
env:
41-
CURRENT_DATE: ${{ steps.set_date.outputs.CURRENT_DATE }}
42-
HOUR_MINUS_TWO: ${{ steps.set_hour.outputs.HOUR_MINUS_TWO }}
35+
- name: Check if the date and hour are set
36+
run: cat $GITHUB_OUTPUT
4337

44-
- name: padded hour
45-
id: padded_hour
38+
- name: process changesets for the hour ${{ steps.set_hour.outputs.HOUR_TWO_HOURS_AGO }}:00 on ${{ steps.set_date.outputs.DATE_TWO_HOURS_AGO }}
4639
run: |
47-
if [[ $HOUR_MINUS_TWO -lt 10 && $HOUR_MINUS_TWO -gt 0 ]]; then
48-
HOUR_MINUS_TWO="0$HOUR_MINUS_TWO"
49-
fi
50-
echo "PADDED_HOUR=$HOUR_MINUS_TWO" >> $GITHUB_OUTPUT
40+
docker run -v ./data:/tmp gradient-pipeline sh -c "node cli.js process-hour $DATE_TWO_HOURS_AGO $HOUR_TWO_HOURS_AGO"
5141
env:
52-
HOUR_MINUS_TWO: ${{ steps.set_hour.outputs.HOUR_MINUS_TWO }}
42+
DATE_TWO_HOURS_AGO: ${{ steps.set_date.outputs.DATE_TWO_HOURS_AGO }}
43+
HOUR_TWO_HOURS_AGO: ${{ steps.set_hour.outputs.HOUR_TWO_HOURS_AGO }}
44+
45+
# - name: padded hour
46+
# id: padded_hour
47+
# run: |
48+
# if [[ $HOUR_TWO_HOURS_AGO -lt 10 && $HOUR_TWO_HOURS_AGO -gt 0 ]]; then
49+
# HOUR_TWO_HOURS_AGO="0$HOUR_TWO_HOURS_AGO"
50+
# fi
51+
# echo "PADDED_HOUR=$HOUR_TWO_HOURS_AGO" >> $GITHUB_OUTPUT
52+
# env:
53+
# HOUR_TWO_HOURS_AGO: ${{ steps.set_hour.outputs.HOUR_TWO_HOURS_AGO }}
5354

54-
- name: convert to fgb for the hour ${{ steps.padded_hour.outputs.PADDED_HOUR }}:00 on ${{ steps.set_date.outputs.CURRENT_DATE }}
55+
- name: convert to fgb for the hour ${{ steps.set_hour.outputs.HOUR_TWO_HOURS_AGO }}:00 on ${{ steps.set_date.outputs.DATE_TWO_HOURS_AGO }}
5556
run: |
56-
docker run -v ./data:/tmp gradient-pipeline sh -c "ogr2ogr -f FlatGeobuf /tmp/${CURRENT_DATE}T${PADDED_HOUR}:00.fgb /tmp/${CURRENT_DATE}T${PADDED_HOUR}:00.geojson -skipfailures"
57+
docker run -v ./data:/tmp gradient-pipeline sh -c "ogr2ogr -f FlatGeobuf /tmp/${DATE_TWO_HOURS_AGO}T${HOUR_TWO_HOURS_AGO}:00.fgb /tmp/${DATE_TWO_HOURS_AGO}T${HOUR_TWO_HOURS_AGO}:00.geojson -skipfailures"
5758
env:
58-
CURRENT_DATE: ${{ steps.set_date.outputs.CURRENT_DATE }}
59-
PADDED_HOUR: ${{ steps.padded_hour.outputs.PADDED_HOUR }}
59+
DATE_TWO_HOURS_AGO: ${{ steps.set_date.outputs.DATE_TWO_HOURS_AGO }}
60+
HOUR_TWO_HOURS_AGO: ${{ steps.set_hour.outputs.HOUR_TWO_HOURS_AGO }}
6061

6162
- name: Check if the pipeline ran successfully
6263
run: ls -lh ./data
6364

64-
# - name: Upload the FGB to Cloud Storage
65-
66-
67-
65+
- name: Authenticate with GCP
66+
uses: google-github-actions/auth@v2
67+
with:
68+
credentials_json: ${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}
69+
70+
- name: Upload to GCS
71+
uses: google-github-actions/upload-cloud-storage@v2
72+
with:
73+
path: data
74+
destination: osm-tardis
75+
parent: false
76+
glob: '*.fgb'

pipeline/src/utils.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const sax = require('sax');
1111
function getHourlyReplicationFileURL(date, hour) {
1212
// Add a leading zero to the hour if it is a single digit
1313
hour = hour.toString().padStart(2, '0');
14+
console.log(`Got date: ${date} and hour: ${hour}`)
1415
let startDate = new Date(`${date}T${hour}:00:00Z`);
1516
console.log(`Processing an hour of data starting from ${startDate}`);
1617
// Calculate the sequence number for the hourly replication file from the date

0 commit comments

Comments
 (0)