1
0
mirror of https://github.com/ijaric/voice_assistant.git synced 2025-05-24 14:33:26 +00:00
voice_assistant/.github/workflows/check-pr.yaml
2023-10-08 21:37:52 +03:00

130 lines
3.0 KiB
YAML

name: Check PR
on:
pull_request:
types:
- opened
- reopened
- synchronize
jobs:
generate-matrix:
name: Generate job matrices
runs-on: ubuntu-20.04
outputs:
packages-matrix: ${{ steps.packages-matrix.outputs.matrix }}
steps:
- name: Generate packages matrix
id: packages-matrix
uses: hellofresh/action-changed-files@v2
with:
pattern: src/(?P<package>[^/]+)/
check-root:
name: Check root
runs-on: ubuntu-20.04
permissions:
contents: read
strategy:
matrix:
python-version: ["3.11"]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
uses: snok/install-poetry@v1
- name: Install dependencies
run: |
make ci-init
- name: Lint PR
run: |
make lint
- name: Test PR
run: |
make test
check-package:
name: Check package
runs-on: ubuntu-20.04
needs: [generate-matrix]
if: ${{ fromJson(needs.generate-matrix.outputs.packages-matrix).include[0] }}
strategy:
matrix:
package: ${{ fromJson(needs.generate-matrix.outputs.packages-matrix).include[*].package }}
python-version: ["3.11"]
fail-fast: false
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
uses: snok/install-poetry@v1
- name: Install repository dependencies
run: |
make ci-init
- name: Install package dependencies
working-directory: src/${{ matrix.package }}
run: |
make init
- name: Lint Package
working-directory: src/${{ matrix.package }}
run: |
make lint
- name: Test Package
env:
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
POSTGRES_DRIVER: ${{ vars.POSTGRES_DRIVER }}
POSTGRES_HOST: ${{ vars.POSTGRES_HOST }}
POSTGRES_PORT: ${{ vars.POSTGRES_PORT }}
POSTGRES_USER: ${{ vars.POSTGRES_USER }}
NGINX_PORT: ${{ vars.NGINX_PORT }}
API_HOST: ${{ vars.API_HOST }}
API_PORT: ${{ vars.API_PORT }}
APP_RELOAD: ${{ vars.APP_RELOAD }}
working-directory: src/${{ matrix.package }}
run: |
make ci-test
results:
if: ${{ always() }}
runs-on: ubuntu-20.04
name: Final Results
needs: [check-package]
steps:
- run: |
result="${{ needs.check-package.result }}"
if [[ $result == "success" || $result == "skipped" ]]; then
exit 0
else
exit 1
fi