Nightly update workflow fixes #2058
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: Test | |
| on: | |
| workflow_dispatch: ~ | |
| push: | |
| branches: | |
| - master | |
| pull_request: ~ | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref_name != 'master' }} | |
| jobs: | |
| test: | |
| name: Build and test | |
| strategy: | |
| matrix: | |
| runs-on: | |
| - ubuntu-24.04 | |
| - ubuntu-24.04-arm | |
| runs-on: ${{ matrix.runs-on }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Get Date | |
| id: get-date | |
| shell: bash | |
| run: | | |
| echo "date=$(/bin/date -u "+%Y%m")" >> $GITHUB_OUTPUT | |
| - name: Cache data | |
| uses: actions/cache@v4 | |
| id: cache-data | |
| with: | |
| path: | | |
| data/berlin.osm.pbf | |
| data/filtered/berlin.osm.pbf | |
| key: data-${{ steps.get-date.outputs.date }}-berlin | |
| enableCrossOsArchive: true | |
| - name: Download Berlin | |
| if: ${{ steps.cache-data.outputs.cache-hit != 'true' }} | |
| run: | | |
| curl --location --fail --output data/berlin.osm.pbf https://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf | |
| - name: Build containers | |
| uses: docker/bake-action@v6 | |
| with: | |
| load: true | |
| targets: db,import,import-test,api,martin,proxy | |
| set: | | |
| db.cache-from=type=gha,scope=db-${{ runner.arch }} | |
| ${{ github.ref_name == 'master' && format('db.cache-to=type=gha,mode=max,scope=db-{0}', runner.arch) || '' }} | |
| import.cache-from=type=gha,scope=import-${{ runner.arch }} | |
| ${{ github.ref_name == 'master' && format('import.cache-to=type=gha,mode=max,scope=import-{0}', runner.arch) || '' }} | |
| import-test.cache-from=type=gha,scope=import-test-${{ runner.arch }} | |
| ${{ github.ref_name == 'master' && format('import-test.cache-to=type=gha,mode=max,scope=import-test-{0}', runner.arch) || '' }} | |
| api.cache-from=type=gha,scope=api-${{ runner.arch }} | |
| ${{ github.ref_name == 'master' && format('api.cache-to=type=gha,mode=max,scope=api-{0}', runner.arch) || '' }} | |
| martin.cache-from=type=gha,scope=martin-${{ runner.arch }} | |
| ${{ github.ref_name == 'master' && format('martin.cache-to=type=gha,mode=max,scope=martin-{0}', runner.arch) || '' }} | |
| proxy.cache-from=type=gha,scope=proxy-${{ runner.arch }} | |
| ${{ github.ref_name == 'master' && format('proxy.cache-to=type=gha,mode=max,scope=proxy-{0}', runner.arch) || '' }} | |
| - name: Start database | |
| run: | | |
| docker compose up --wait db | |
| - name: Run import tests | |
| run: | | |
| docker compose run --rm import-test | |
| - name: Import data | |
| env: | |
| OSM2PGSQL_DATAFILE: berlin.osm.pbf | |
| run: | | |
| docker compose run --rm --no-deps import import | |
| - name: Start API | |
| run: | | |
| docker compose up --wait --no-deps api | |
| - name: Run API tests | |
| run: | | |
| docker compose up --no-deps api-test | |
| - name: Start tile server | |
| run: | | |
| docker compose up --detach --no-deps martin | |
| - name: Start proxy | |
| run: | | |
| docker compose up --wait --no-deps proxy | |
| - name: Run proxy tests | |
| run: | | |
| docker compose run --no-deps proxy-test | |
| - name: Download preset | |
| if: always() | |
| run: | | |
| curl -sSf -o preset.zip http://localhost:8000/preset.zip | |
| - name: Store preset | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: ${{ runner.arch }}-presets | |
| path: preset.zip | |
| if-no-files-found: warn | |
| - name: Run UI tests | |
| uses: cypress-io/github-action@v6 | |
| with: | |
| working-directory: proxy/test/ui | |
| browser: ${{ runner.arch == 'X64' && 'chrome' || 'firefox' }} | |
| - name: Store screenshots | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: ${{ runner.arch }}-screenshots | |
| path: proxy/test/ui/cypress/screenshots | |
| if-no-files-found: warn | |
| - name: Print logs | |
| if: always() | |
| run: | | |
| docker compose logs |