diff --git a/.github/workflows/pr_checks_backend.yml b/.github/workflows/pr_checks_backend.yml index 9557ebc3..832e28a2 100644 --- a/.github/workflows/pr_checks_backend.yml +++ b/.github/workflows/pr_checks_backend.yml @@ -8,13 +8,12 @@ on: - 'data/**' - 'Dockerfile-pg' - 'init_pg.sql' - - 'docker-compose.yml' + - 'docker compose.yml' workflow_dispatch: jobs: - build: + setup: runs-on: ubuntu-latest - steps: - name: Checkout repository uses: actions/checkout@v4 @@ -30,49 +29,90 @@ jobs: with: python-version: '3.11.4' + run-formatter: + runs-on: ubuntu-latest + needs: setup + continue-on-error: true + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Run Ruff Formatter in Docker run: | cd data - docker-compose run --rm formatter - continue-on-error: true + docker compose run --rm formatter + + run-linter: + runs-on: ubuntu-latest + needs: setup + continue-on-error: true + + steps: + - name: Checkout repository + uses: actions/checkout@v4 - name: Run Ruff Linter in Docker run: | cd data - docker-compose run --rm linter - continue-on-error: true + docker compose run --rm linter + + build-project: + runs-on: ubuntu-latest + needs: setup + + steps: + - name: Checkout repository + uses: actions/checkout@v4 - name: Build vacant-lots-proj run: | cd data - docker-compose build vacant-lots-proj + docker compose build vacant-lots-proj - - name: Build data-fetcher - run: | - cd data - docker-compose build data-fetcher + run-services: + runs-on: ubuntu-latest + needs: build-project + + steps: + - name: Checkout repository + uses: actions/checkout@v4 - name: Run all services run: | cd data - docker-compose up -d + docker compose up -d + + check-build-status: + runs-on: ubuntu-latest + needs: run-services + + steps: + - name: Checkout repository + uses: actions/checkout@v4 - name: Check build status if: failure() run: | echo "One or more services failed to build and run." exit 1 - - name: Report success if: success() run: echo "All services built and ran successfully." + check-lint-format-status: + runs-on: ubuntu-latest + needs: [run-formatter, run-linter] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Check formatter and linter status if: failure() run: | echo "Formatting or linting issues found. Please fix the issues." exit 1 - - name: Formatter and linter success if: success() run: echo "Formatting and linting passed successfully." diff --git a/data/docker-compose.yml b/data/docker-compose.yml index ee2ef334..562478d1 100644 --- a/data/docker-compose.yml +++ b/data/docker-compose.yml @@ -26,7 +26,7 @@ services: context: . volumes: - ./src:/usr/src/app - command: sh -c "pip install ruff && ruff /usr/src/app --fix --exclude '/usr/src/app/data/src/awkde/'" + command: sh -c "pip install ruff && ruff format --exclude '/usr/src/app/awkde/'" network_mode: 'host' linter: @@ -34,7 +34,7 @@ services: context: . volumes: - ./src:/usr/src/app - command: sh -c "pip install ruff && ruff check /usr/src/app --exclude '/usr/src/app/data/src/awkde/'" + command: sh -c "pip install ruff && ruff check --fix --exclude '/usr/src/app/awkde/'" network_mode: 'host' streetview: