Skip to content

feat: feeds operations API function #1557

feat: feeds operations API function

feat: feeds operations API function #1557

Workflow file for this run

name: Build and Test
on:
pull_request:
branches: [ main ]
paths-ignore:
- '**.md'
- "web-app/**"
- "functions/**"
- ".github/workflows/web-*.yml"
workflow_call:
env:
python_version: '3.11'
java_version: '11' # needed by setup-openapi-generator.sh
jobs:
build-test:
runs-on: ubuntu-latest
permissions: write-all
name: Build & Test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Extract commit hash and version from git
run: ./scripts/extract-hash-and-version.sh
- name: Set up JDK ${{ env.java_version }}
uses: actions/setup-java@v4
with:
java-version: ${{ env.java_version }}
distribution: 'temurin'
- uses: actions/setup-python@v5
with:
python-version: ${{ env.python_version }}
- name: Docker Compose DB
run: |
docker compose --env-file ./config/.env.local up -d postgres postgres-test
working-directory: ${{ github.workspace }}
- name: Run lint checks
shell: bash
run: |
scripts/lint-tests.sh
- name: Install Liquibase
run: |
wget -O- https://repo.liquibase.com/liquibase.asc | gpg --dearmor > liquibase-keyring.gpg && \
cat liquibase-keyring.gpg | sudo tee /usr/share/keyrings/liquibase-keyring.gpg > /dev/null && \
echo 'deb [trusted=yes arch=amd64 signed-by=/usr/share/keyrings/liquibase-keyring.gpg] https://repo.liquibase.com stable main' | sudo tee /etc/apt/sources.list.d/liquibase.list
sudo apt-get update
sudo apt-get install liquibase=4.25.1
# Uncomment the following block to test the local databases connections
# - name: Test Database Connection
# run: |
# sudo apt-get update && sudo apt-get install -y postgresql-client
# PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d MobilityDatabase -c "SELECT version();"
# PGPASSWORD=postgres psql -h localhost -p 54320 -U postgres -d MobilityDatabaseTest -c "SELECT version();"
- name: Run Liquibase on Python functions test DB
run: |
export LIQUIBASE_CLASSPATH="liquibase"
export LIQUIBASE_COMMAND_CHANGELOG_FILE="changelog.xml"
export LIQUIBASE_COMMAND_URL=jdbc:postgresql://localhost:54320/MobilityDatabaseTest
export LIQUIBASE_COMMAND_USERNAME=postgres
export LIQUIBASE_COMMAND_PASSWORD=postgres
liquibase update
- name: Generate DB code
run: |
export USE_TEST_DB=true
scripts/db-gen.sh
- name: Generate API code
run: |
scripts/setup-openapi-generator.sh
scripts/api-gen.sh
- name: Generate Operations API code
run: |
scripts/api-operations-gen.sh
- name: Unit tests - API
shell: bash
run: |
scripts/api-tests.sh --folder api --html_report
- name: Unit tests - Python Functions
shell: bash
run: |
scripts/api-tests.sh --folder functions-python --html_report
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage_report
path: scripts/coverage_reports/
overwrite: true
- name: Upload DB models
uses: actions/upload-artifact@v4
with:
name: database_gen
path: api/src/database_gen/
overwrite: true
- name: API generated code
uses: actions/upload-artifact@v4
with:
name: feeds_gen
path: api/src/feeds_gen/
overwrite: true