Merge pull request #2 from fjsuarez/implementation-phase2 #19
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: CI | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| service: [ "api-gateway", "admin-service", "ride-service", "notification-service", "review-service", "user-service" ] | |
| steps: | |
| - name: Checkout repository including submodules | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: recursive | |
| - name: Install the latest version of uv | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| version: "latest" | |
| - name: Install dependencies for ${{ matrix.service }} | |
| run: | | |
| if [ -f "services/${{ matrix.service }}/pyproject.toml" ]; then | |
| cd services/${{ matrix.service }} | |
| uv sync --dev | |
| cd - | |
| fi | |
| - name: Write serviceAccount.json for api-gateway | |
| if: ${{ matrix.service == 'api-gateway' }} | |
| run: | | |
| cat <<EOF > credentials.json | |
| ${{ secrets.SERVICE_ACCOUNT_JSON }} | |
| EOF | |
| - name: Write serviceAccount.json for non-api-gateway services | |
| if: ${{ matrix.service != 'api-gateway' }} | |
| run: | | |
| cat <<EOF > credentials.json | |
| ${{ secrets.SERVICE_ACCOUNT_JSON }} | |
| EOF | |
| working-directory: services/${{ matrix.service }} | |
| - name: Create .env file for admin-service | |
| if: ${{ matrix.service == 'admin-service' }} | |
| run: echo "${{ secrets.SECRET_ADMIN_SERVICE_ENV }}" > .env | |
| working-directory: services/${{ matrix.service }} | |
| - name: Create .env file for notification-service | |
| if: ${{ matrix.service == 'notification-service' }} | |
| run: echo "${{ secrets.SECRET_NOTIFICATION_SERVICE_ENV }}" > .env | |
| working-directory: services/${{ matrix.service }} | |
| - name: Create .env file for review-service | |
| if: ${{ matrix.service == 'review-service' }} | |
| run: echo "${{ secrets.SECRET_REVIEW_SERVICE_ENV }}" > .env | |
| working-directory: services/${{ matrix.service }} | |
| - name: Create .env file for ride-service | |
| if: ${{ matrix.service == 'ride-service' }} | |
| run: echo "${{ secrets.SECRET_RIDE_SERVICE_ENV }}" > .env | |
| working-directory: services/${{ matrix.service }} | |
| - name: Create .env file for user-service | |
| if: ${{ matrix.service == 'user-service' }} | |
| run: echo "${{ secrets.SECRET_USER_SERVICE_ENV }}" > .env | |
| working-directory: services/${{ matrix.service }} | |
| - name: Run tests for ${{ matrix.service }} | |
| run: | | |
| if [ -d "services/${{ matrix.service }}/tests" ]; then | |
| cd services/${{ matrix.service }} | |
| uv run pytest -s | |
| cd - | |
| fi |