diff --git a/.github/workflows/monorepo_tests.yaml b/.github/workflows/tests_on_pr.yaml similarity index 99% rename from .github/workflows/monorepo_tests.yaml rename to .github/workflows/tests_on_pr.yaml index 7cf4a84c..81ef995b 100644 --- a/.github/workflows/monorepo_tests.yaml +++ b/.github/workflows/tests_on_pr.yaml @@ -1,6 +1,6 @@ name: Monorepo Tests -on: push +on: pull_request jobs: get-changed-services: diff --git a/.github/workflows/tests_on_push.yaml b/.github/workflows/tests_on_push.yaml new file mode 100644 index 00000000..8a798fc3 --- /dev/null +++ b/.github/workflows/tests_on_push.yaml @@ -0,0 +1,63 @@ +name: Monorepo Tests + +on: + push: + branches-ignore: + - main + +jobs: + get-changed-services: + runs-on: ubuntu-latest + outputs: + services: ${{ steps.services-changed.outputs.affected }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + filter: tree:0 + fetch-depth: 2 + + - name: Changed Files + id: changed-files + uses: tj-actions/changed-files@v44.3.0 + + - name: Install Typer to check changed services + id: install-typer + run: pip install typer>=0.9.0 + + - name: Generate list of changed services + id: services-changed + run: | + echo "affected=$(python3 ./scripts/get_affected_services.py --changed-files ${{ steps.changed-files.outputs.all_changed_files }} )" >> $GITHUB_OUTPUT + + test: + needs: get-changed-services + if: ${{needs.get-changed-services.outputs.services}} != "[]" + runs-on: ubuntu-latest + strategy: + matrix: + service: ${{ fromJson(needs.get-changed-services.outputs.services) }} + fail-fast: false + env: + IFRS_CONFIG_YAML: ./services/ifrs/dev_config.yaml + IRS_CONFIG_YAML: ./services/irs/dev_config.yaml + PCS_CONFIG_YAML: ./services/pcs/dev_config.yaml + steps: + - name: Checkout ${{matrix.service}} + uses: actions/checkout@v4 + with: + filter: tree:0 + fetch-depth: 0 + + - name: Update pip and pyopenssl + id: pip-update + run: python -m pip install --upgrade pip && pip install --upgrade pyopenssl + + - name: Install global and local dependencies for ${{matrix.service}} + id: install-dependencies + run: pip install --no-deps -r ./lock/requirements-dev.txt && pip install --no-deps ./services/${{matrix.service}} + + - name: Run tests for ${{matrix.service}} + id: run-tests + run: pytest ./services/${{matrix.service}}