Docs/256 add docstring #101
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build & Push Benchmarking Containers to ACR | |
| on: | |
| pull_request: | |
| types: [closed] | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| id-token: write | |
| contents: read | |
| jobs: | |
| detect-changes: | |
| name: Detect changed paths | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| outputs: | |
| orchestrator: ${{ steps.filter.outputs.orchestrator || (github.event_name == 'workflow_dispatch' && 'true') }} | |
| benchmarks: ${{ steps.filter.outputs.benchmarks || (github.event_name == 'workflow_dispatch' && 'true') }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dorny/paths-filter@v3 | |
| id: filter | |
| if: github.event_name == 'pull_request' | |
| with: | |
| filters: | | |
| orchestrator: | |
| - 'main.py' | |
| - 'benchmarks.yml' | |
| - 'src/__init__.py' | |
| - 'src/config.py' | |
| - 'src/application/common/**' | |
| - 'src/domain/enums/storage_container.py' | |
| - '.docker/Orchestrator.Dockerfile' | |
| - 'requirements.txt' | |
| - 'docker-compose.yml' | |
| benchmarks: | |
| - 'src/**' | |
| - 'benchmark_runner.py' | |
| - '.docker/Query.Dockerfile' | |
| - '.docker/Setup.Dockerfile' | |
| - 'requirements.txt' | |
| - 'docker-compose.yml' | |
| build-and-push-queries: | |
| name: Build & Push ${{ matrix.display_name }} | |
| needs: detect-changes | |
| if: ${{ needs.detect-changes.outputs.benchmarks == 'true' }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| - service: db-scan-blob-storage | |
| image: db-scan-blob-storage | |
| display_name: Blob Storage DB Scan | |
| - service: db-scan-postgis | |
| image: db-scan-postgis | |
| display_name: PostGIS DB Scan | |
| - service: bbox-filtering-advanced-duckdb | |
| image: bbox-filtering-advanced-duckdb | |
| display_name: Advanced DuckDB Bounding Box Filtering | |
| - service: bbox-filtering-advanced-postgis | |
| image: bbox-filtering-advanced-postgis | |
| display_name: Advanced PostGIS Bounding Box Filtering | |
| - service: bbox-filtering-simple-local | |
| image: bbox-filtering-simple-local | |
| display_name: Simple Shapefile Bounding Box Filtering | |
| - service: bbox-filtering-simple-blob-storage | |
| image: bbox-filtering-simple-blob-storage | |
| display_name: Simple GeoParquet Bounding Box Filtering | |
| - service: bbox-filtering-result-set-sizes-neighborhood-duckdb | |
| image: bbox-filtering-result-set-sizes-neighborhood-duckdb | |
| display_name: DuckDB Bounding Box Filtering - Neighborhood | |
| - service: bbox-filtering-result-set-sizes-municipality-duckdb | |
| image: bbox-filtering-result-set-sizes-municipality-duckdb | |
| display_name: DuckDB Bounding Box Filtering - Municipality | |
| - service: bbox-filtering-result-set-sizes-county-duckdb | |
| image: bbox-filtering-result-set-sizes-county-duckdb | |
| display_name: DuckDB Bounding Box Filtering - County | |
| - service: bbox-filtering-result-set-sizes-neighborhood-postgis | |
| image: bbox-filtering-result-set-sizes-neighborhood-postgis | |
| display_name: PostGIS Bounding Box Filtering - Neighborhood | |
| - service: bbox-filtering-result-set-sizes-municipality-postgis | |
| image: bbox-filtering-result-set-sizes-municipality-postgis | |
| display_name: PostGIS Bounding Box Filtering - Municipality | |
| - service: bbox-filtering-result-set-sizes-county-postgis | |
| image: bbox-filtering-result-set-sizes-county-postgis | |
| display_name: PostGIS Bounding Box Filtering - County | |
| - service: bbox-filtering-result-set-sizes-neighborhood-local | |
| image: bbox-filtering-result-set-sizes-neighborhood-local | |
| display_name: Shapefile Bounding Box Filtering - Neighborhood | |
| - service: bbox-filtering-result-set-sizes-municipality-local | |
| image: bbox-filtering-result-set-sizes-municipality-local | |
| display_name: Shapefile Bounding Box Filtering - Municipality | |
| - service: bbox-filtering-result-set-sizes-county-local | |
| image: bbox-filtering-result-set-sizes-county-local | |
| display_name: Shapefile Bounding Box Filtering - County | |
| - service: vector-tiles-single-tile-pmtiles | |
| image: vector-tiles-single-tile-pmtiles | |
| display_name: PMTiles Fetch Single Tile | |
| - service: vector-tiles-single-tile-vmt | |
| image: vector-tiles-single-tile-vmt | |
| display_name: VMT Fetch Single Tile | |
| - service: vector-tiles-100k-pmtiles | |
| image: vector-tiles-100k-pmtiles | |
| display_name: PMTiles Fetch 100 000 Tiles | |
| - service: vector-tiles-100k-vmt | |
| image: vector-tiles-100k-vmt | |
| display_name: VMT Fetch 100 000 Tiles | |
| - service: spatial-aggregation-grid-duckdb | |
| image: spatial-aggregation-grid-duckdb | |
| display_name: DuckDB Spatial Aggregation by Grid Cell | |
| - service: spatial-aggregation-grid-postgis | |
| image: spatial-aggregation-grid-postgis | |
| display_name: PostGIS Spatial Aggregation by Grid Cell | |
| - service: attribute-spatial-compound-filter-duckdb | |
| image: attribute-spatial-compound-filter-duckdb | |
| display_name: DuckDB Attribute + Spatial Compound Filter | |
| - service: attribute-spatial-compound-filter-postgis | |
| image: attribute-spatial-compound-filter-postgis | |
| display_name: PostGIS Attribute + Spatial Compound Filter | |
| - service: ordered-range-query-duckdb | |
| image: ordered-range-query-duckdb | |
| display_name: DuckDB Ordered Range Query with LIMIT | |
| - service: ordered-range-query-postgis | |
| image: ordered-range-query-postgis | |
| display_name: PostGIS Ordered Range Query with LIMIT | |
| - service: point-in-polygon-lookup-duckdb | |
| image: point-in-polygon-lookup-duckdb | |
| display_name: DuckDB Point-in-Polygon Lookup | |
| - service: point-in-polygon-lookup-postgis | |
| image: point-in-polygon-lookup-postgis | |
| display_name: PostGIS Point-in-Polygon Lookup | |
| - service: national-scale-spatial-join-duckdb | |
| image: national-scale-spatial-join-duckdb | |
| display_name: DuckDB National Scale Spatial Join | |
| - service: national-scale-spatial-join-postgis | |
| image: national-scale-spatial-join-postgis | |
| display_name: PostGIS National Scale Spatial Join | |
| - service: national-scale-spatial-join-databricks-2-nodes | |
| image: national-scale-spatial-join-databricks-2-nodes | |
| display_name: Databricks National Scale Spatial Join - 2 Nodes | |
| - service: national-scale-spatial-join-databricks-4-nodes | |
| image: national-scale-spatial-join-databricks-4-nodes | |
| display_name: Databricks National Scale Spatial Join - 4 Nodes | |
| - service: national-scale-spatial-join-databricks-8-nodes | |
| image: national-scale-spatial-join-databricks-8-nodes | |
| display_name: Databricks National Scale Spatial Join - 8 Nodes | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Azure Login | |
| uses: azure/login@v2 | |
| with: | |
| client-id: ${{ vars.AZURE_CLIENT_ID }} | |
| tenant-id: ${{ vars.AZURE_TENANT_ID }} | |
| subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }} | |
| - name: Log in to ACR | |
| run: az acr login --name ${{ vars.ACR_NAME }} | |
| - name: Build ${{ matrix.display_name }} from docker-compose | |
| run: docker compose build ${{ matrix.service }} | |
| - name: Tag ${{ matrix.display_name }} as latest | |
| run: docker tag ${{ matrix.service }}:latest ${{ vars.ACR_LOGIN_SERVER }}/${{ matrix.image }}:latest | |
| - name: Tag ${{ matrix.display_name }} with commit SHA | |
| run: docker tag ${{ matrix.service }}:latest ${{ vars.ACR_LOGIN_SERVER }}/${{ matrix.image }}:${{ github.sha }} | |
| - name: Push ${{ matrix.display_name }} (latest) | |
| run: docker push ${{ vars.ACR_LOGIN_SERVER }}/${{ matrix.image }}:latest | |
| - name: Push ${{ matrix.display_name }} (commit SHA) | |
| run: docker push ${{ vars.ACR_LOGIN_SERVER }}/${{ matrix.image }}:${{ github.sha }} | |
| build-and-push-container-orchestrator: | |
| name: Build & Push Container Orchestrator | |
| needs: | |
| - detect-changes | |
| - build-and-push-queries | |
| if: | | |
| always() | |
| && !cancelled() | |
| && needs.detect-changes.result == 'success' | |
| && needs.detect-changes.outputs.orchestrator == 'true' | |
| && (needs.build-and-push-queries.result == 'success' || needs.build-and-push-queries.result == 'skipped') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Azure Login | |
| uses: azure/login@v2 | |
| with: | |
| client-id: ${{ vars.AZURE_CLIENT_ID }} | |
| tenant-id: ${{ vars.AZURE_TENANT_ID }} | |
| subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }} | |
| - name: Log in to ACR | |
| run: az acr login --name ${{ vars.ACR_NAME }} | |
| - name: Build Container Orchestrator from docker-compose | |
| run: docker compose build container-orchestrator | |
| - name: Tag Container Orchestrator as latest | |
| run: docker tag container-orchestrator:latest ${{ vars.ACR_LOGIN_SERVER }}/container-orchestrator:latest | |
| - name: Tag Container Orchestrator with commit SHA | |
| run: docker tag container-orchestrator:latest ${{ vars.ACR_LOGIN_SERVER }}/container-orchestrator:${{ github.sha }} | |
| - name: Push Container Orchestrator (latest) | |
| run: docker push ${{ vars.ACR_LOGIN_SERVER }}/container-orchestrator:latest | |
| - name: Push Container Orchestrator (commit SHA) | |
| run: docker push ${{ vars.ACR_LOGIN_SERVER }}/container-orchestrator:${{ github.sha }} | |
| build-and-push-setup-framework: | |
| name: Build & Push Setup Framework | |
| needs: | |
| - detect-changes | |
| - build-and-push-queries | |
| if: | | |
| always() | |
| && !cancelled() | |
| && needs.detect-changes.result == 'success' | |
| && needs.detect-changes.outputs.benchmarks == 'true' | |
| && (needs.build-and-push-queries.result == 'success' || needs.build-and-push-queries.result == 'skipped') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Azure Login | |
| uses: azure/login@v2 | |
| with: | |
| client-id: ${{ vars.AZURE_CLIENT_ID }} | |
| tenant-id: ${{ vars.AZURE_TENANT_ID }} | |
| subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }} | |
| - name: Log in to ACR | |
| run: az acr login --name ${{ vars.ACR_NAME }} | |
| - name: Build Setup Framework from docker-compose | |
| run: docker compose build setup-framework | |
| - name: Tag Setup Framework as latest | |
| run: docker tag setup-framework:latest ${{ vars.ACR_LOGIN_SERVER }}/setup-framework:latest | |
| - name: Tag Setup Framework with commit SHA | |
| run: docker tag setup-framework:latest ${{ vars.ACR_LOGIN_SERVER }}/setup-framework:${{ github.sha }} | |
| - name: Push Setup Framework (latest) | |
| run: docker push ${{ vars.ACR_LOGIN_SERVER }}/setup-framework:latest | |
| - name: Push Setup Framework (commit SHA) | |
| run: docker push ${{ vars.ACR_LOGIN_SERVER }}/setup-framework:${{ github.sha }} |