Skip to content

Commit

Permalink
Merge pull request #4 from govlt/add-files-to-github-release
Browse files Browse the repository at this point in the history
Add boundaries.sqlite and checksums to release
  • Loading branch information
vycius authored Jul 18, 2024
2 parents e1495a2 + c8554b6 commit 863749c
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 13 deletions.
43 changes: 39 additions & 4 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ on:
permissions: { }

jobs:
publish-api-docker-image:
name: Publish API docker image
publish-docker-image:
name: Publish docker image
runs-on: ubuntu-latest
timeout-minutes: 20
permissions:
contents: read
contents: write
packages: write
id-token: write
attestations: write
Expand All @@ -42,4 +42,39 @@ jobs:
with:
subject-name: ghcr.io/govlt/national-boundaries-api
subject-digest: ${{ steps.docker.outputs.digest }}
push-to-registry: true
push-to-registry: true

- name: Extract files from Docker image
uses: shrink/actions-docker-extract@v3
id: extract
with:
image: ghcr.io/govlt/national-boundaries-api@${{ steps.docker.outputs.digest }}
path: /opt/app/.
destination: app

- run: ls -lah

- run: ls -lah app

- name: Upload boundaries.sqlite artifact
uses: actions/upload-artifact@v4
with:
name: boundaries.sqlite
path: app/boundaries.sqlite
if-no-files-found: error

- name: Upload data-source-checksums.txt artifact
uses: actions/upload-artifact@v4
with:
name: data-source-checksums.txt
path: app/data-source-checksums.txt
if-no-files-found: error

- name: Upload artifacts to GitHub release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
app/boundaries.sqlite
app/data-source-checksums.txt
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV}
COPY src/ src/
COPY --chmod=555 entrypoint.sh /opt/app/entrypoint.sh

COPY --from=database-builder --chmod=444 /opt/database/boundaries.sqlite /opt/database/data-sources/checksums.txt ./
COPY --from=database-builder --chmod=444 /opt/database/boundaries.sqlite /opt/database/data-sources/data-source-checksums.txt ./


ENTRYPOINT ["/opt/app/entrypoint.sh"]
16 changes: 8 additions & 8 deletions create-database.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,38 +22,38 @@ mkdir -p data-sources

echo "Importing counties data into SQLite"
curl -f -L --max-redirs 5 --retry 3 -o data-sources/counties.json https://www.registrucentras.lt/aduomenys/?byla=adr_gra_apskritys.json
calculate_md5 data-sources/counties.json >> data-sources/checksums.txt
calculate_md5 data-sources/counties.json >> data-sources/data-source-checksums.txt
ogr2ogr -f SQLite boundaries.sqlite data-sources/counties.json -dsco SPATIALITE=YES -lco FID=feature_id -lco GEOMETRY_NAME=geom \
-sql "SELECT FID AS feature_id, CAST(APS_KODAS AS integer(8)) AS code, APS_PAV as name, APS_PLOTAS as area_ha, APS_R AS created_at FROM counties"
ogrinfo -sql "CREATE UNIQUE INDEX counties_code ON counties(code)" boundaries.sqlite

echo "Importing municipalities data into SQLite"
curl -f -L --max-redirs 5 --retry 3 -o data-sources/municipalities.json https://www.registrucentras.lt/aduomenys/?byla=adr_gra_savivaldybes.json
calculate_md5 data-sources/municipalities.json >> data-sources/checksums.txt
calculate_md5 data-sources/municipalities.json >> data-sources/data-source-checksums.txt
ogr2ogr -append -f SQLite boundaries.sqlite data-sources/municipalities.json -lco FID=feature_id -lco GEOMETRY_NAME=geom \
-sql "SELECT FID AS feature_id, CAST(SAV_KODAS AS integer(8)) AS code, SAV_PAV as name, SAV_PLOTAS as area_ha, CAST(APS_KODAS AS integer(8)) as county_code, SAV_R AS created_at FROM municipalities"
ogrinfo -sql "CREATE UNIQUE INDEX municipalities_code ON municipalities(code)" boundaries.sqlite
ogrinfo -sql "CREATE INDEX municipalities_county_code ON municipalities(county_code)" boundaries.sqlite

echo "Importing elderships data into SQLite"
curl -f -L --max-redirs 5 --retry 3 -o data-sources/elderships.json https://www.registrucentras.lt/aduomenys/?byla=adr_gra_seniunijos.json
calculate_md5 data-sources/elderships.json >> data-sources/checksums.txt
calculate_md5 data-sources/elderships.json >> data-sources/data-source-checksums.txt
ogr2ogr -append -f SQLite boundaries.sqlite data-sources/elderships.json -lco FID=feature_id -lco GEOMETRY_NAME=geom \
-sql "SELECT FID AS feature_id, CAST(SEN_KODAS AS integer(8)) AS code, SEN_PAV as name, SEN_PLOTAS as area_ha, CAST(SAV_KODAS AS integer(8)) AS municipality_code, SEN_R AS created_at FROM elderships"
ogrinfo -sql "CREATE UNIQUE INDEX elderships_code ON elderships(code)" boundaries.sqlite
ogrinfo -sql "CREATE INDEX elderships_municipality_code_and_name ON elderships(municipality_code, name COLLATE NOCASE)" boundaries.sqlite

echo "Importing residential areas data into SQLite"
curl -f -L --max-redirs 5 --retry 3 -o data-sources/residential_areas.json https://www.registrucentras.lt/aduomenys/?byla=adr_gra_gyvenamosios_vietoves.json
calculate_md5 data-sources/residential_areas.json >> data-sources/checksums.txt
calculate_md5 data-sources/residential_areas.json >> data-sources/data-source-checksums.txt
ogr2ogr -append -f SQLite boundaries.sqlite data-sources/residential_areas.json -lco FID=feature_id -lco GEOMETRY_NAME=geom \
-sql "SELECT FID AS feature_id, GYV_KODAS AS code, GYV_PAV as name, PLOTAS as area_ha, CAST(SAV_KODAS AS integer(8)) AS municipality_code, GYV_R as created_at FROM residential_areas"
ogrinfo -sql "CREATE UNIQUE INDEX residential_areas_code ON residential_areas(code)" boundaries.sqlite
ogrinfo -sql "CREATE INDEX residential_municipality_code_and_name ON residential_areas(municipality_code, name COLLATE NOCASE)" boundaries.sqlite

echo "Importing streets data into SQLite"
curl -f -L --max-redirs 5 --retry 3 -o data-sources/streets.json https://www.registrucentras.lt/aduomenys/?byla=adr_gra_gatves.json
calculate_md5 data-sources/streets.json >> data-sources/checksums.txt
calculate_md5 data-sources/streets.json >> data-sources/data-source-checksums.txt
ogr2ogr -append -f SQLite boundaries.sqlite data-sources/streets.json -lco FID=feature_id -lco GEOMETRY_NAME=geom \
-sql "SELECT FID AS feature_id, GAT_KODAS AS code, GAT_PAV as name, GAT_PAV_PI AS full_name, GAT_ILGIS as length_m, GYV_KODAS AS residential_area_code, GTV_R AS created_at FROM streets"
ogrinfo -sql "CREATE UNIQUE INDEX streets_code ON streets(code)" boundaries.sqlite
Expand All @@ -62,7 +62,7 @@ ogrinfo -sql "CREATE INDEX streets_residential_area_code_and_name ON streets(res
echo "Importing addresses data into SQLite"

curl -f -L --max-redirs 5 --retry 3 -o data-sources/addresses-information.psv https://www.registrucentras.lt/aduomenys/?byla=adr_stat_lr.csv
calculate_md5 data-sources/addresses-information.psv >> data-sources/checksums.txt
calculate_md5 data-sources/addresses-information.psv >> data-sources/data-source-checksums.txt

ogr2ogr -f GPKG data-sources/addresses.gpkg data-sources/addresses-information.psv -nln info

Expand All @@ -74,7 +74,7 @@ echo "Importing address points for each municipality"
curl -sf "https://www.registrucentras.lt/aduomenys/?byla=adr_savivaldybes.csv" | csvcut -d "|" -c "SAV_KODAS" | tail -n +2 | while read -r code; do
echo "Converting https://www.registrucentras.lt/aduomenys/?byla=adr_gra_$code.json"
curl -f -L --max-redirs 5 --retry 3 -o "data-sources/addresses-$code.json" "https://www.registrucentras.lt/aduomenys/?byla=adr_gra_$code.json"
calculate_md5 "data-sources/addresses-$code.json" >> data-sources/checksums.txt
calculate_md5 "data-sources/addresses-$code.json" >> data-sources/data-source-checksums.txt

ogr2ogr -append -f GPKG data-sources/addresses.gpkg "data-sources/addresses-$code.json" -nln points
done
Expand All @@ -89,7 +89,7 @@ ogrinfo -sql "CREATE INDEX addresses_street_code ON addresses(street_code, plot_

echo "Importing rooms"
curl -f -L --max-redirs 5 --retry 3 -o data-sources/rooms.psv https://www.registrucentras.lt/aduomenys/?byla=adr_pat_lr.csv
calculate_md5 data-sources/rooms.psv >> data-sources/checksums.txt
calculate_md5 data-sources/rooms.psv >> data-sources/data-source-checksums.txt
ogr2ogr -append -f SQLite boundaries.sqlite data-sources/rooms.psv -lco FID=code \
-sql "SELECT CAST(PAT_KODAS AS integer(8)) as code, CAST(AOB_KODAS AS integer(8)) AS address_code, PATALPOS_NR AS room_number, PAT_NUO AS created_at FROM rooms"
ogrinfo -sql "CREATE INDEX rooms_address_code ON rooms(address_code, room_number)" boundaries.sqlite
Expand Down

0 comments on commit 863749c

Please sign in to comment.