fix: resolve Next.js dev RAM bloat, NestJS resource leaks, and i18n h… #258
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: Build | |
| on: | |
| push: | |
| branches: | |
| - "**" | |
| pull_request: | |
| branches: | |
| - "**" | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [22.x] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Resolve environment secrets | |
| uses: ./.github/actions/resolve-env-secrets | |
| with: | |
| prod-psql-db-host: ${{ secrets.PROD_PSQL_DB_HOST }} | |
| prod-psql-db-name: ${{ secrets.PROD_PSQL_DB_NAME }} | |
| prod-psql-db-user: ${{ secrets.PROD_PSQL_DB_USER }} | |
| prod-psql-db-password: ${{ secrets.PROD_PSQL_DB_PASSWORD }} | |
| prod-psql-db-port: ${{ secrets.PROD_PSQL_DB_PORT }} | |
| prod-gitlab-private-token: ${{ secrets.PROD_GITLAB_PRIVATE_TOKEN }} | |
| prod-github-private-token: ${{ secrets.PROD_GITHUB_PRIVATE_TOKEN }} | |
| prod-jwt-secret: ${{ secrets.PROD_JWT_SECRET }} | |
| prod-v6y-static-analyzer-api-path: ${{ secrets.PROD_V6Y_STATIC_ANALYZER_API_PATH }} | |
| prod-v6y-static-analyzer-api-port: ${{ secrets.PROD_V6Y_STATIC_ANALYZER_API_PORT }} | |
| prod-v6y-devops-api-path: ${{ secrets.PROD_V6Y_DEVOPS_API_PATH }} | |
| prod-v6y-devops-api-port: ${{ secrets.PROD_V6Y_DEVOPS_API_PORT }} | |
| prod-v6y-dynamic-analyzer-api-path: ${{ secrets.PROD_V6Y_DYNAMIC_ANALYZER_API_PATH }} | |
| prod-v6y-dynamic-analyzer-api-port: ${{ secrets.PROD_V6Y_DYNAMIC_ANALYZER_API_PORT }} | |
| prod-v6y-main-api-path: ${{ secrets.PROD_V6Y_MAIN_API_PATH }} | |
| prod-v6y-main-api-port: ${{ secrets.PROD_V6Y_MAIN_API_PORT }} | |
| prod-v6y-bff-api-path: ${{ secrets.PROD_V6Y_BFF_API_PATH }} | |
| prod-v6y-bff-api-port: ${{ secrets.PROD_V6Y_BFF_API_PORT }} | |
| prod-next-public-v6y-bff-path: ${{ secrets.PROD_NEXT_PUBLIC_V6Y_BFF_PATH }} | |
| prod-nextauth-url: ${{ secrets.PROD_NEXTAUTH_URL }} | |
| dev-psql-db-host: ${{ secrets.DEV_PSQL_DB_HOST }} | |
| dev-psql-db-name: ${{ secrets.DEV_PSQL_DB_NAME }} | |
| dev-psql-db-user: ${{ secrets.DEV_PSQL_DB_USER }} | |
| dev-psql-db-password: ${{ secrets.DEV_PSQL_DB_PASSWORD }} | |
| dev-psql-db-port: ${{ secrets.DEV_PSQL_DB_PORT }} | |
| dev-gitlab-private-token: ${{ secrets.DEV_GITLAB_PRIVATE_TOKEN }} | |
| dev-github-private-token: ${{ secrets.DEV_GITHUB_PRIVATE_TOKEN }} | |
| dev-jwt-secret: ${{ secrets.DEV_JWT_SECRET }} | |
| dev-v6y-static-analyzer-api-path: ${{ secrets.DEV_V6Y_STATIC_ANALYZER_API_PATH }} | |
| dev-v6y-static-analyzer-api-port: ${{ secrets.DEV_V6Y_STATIC_ANALYZER_API_PORT }} | |
| dev-v6y-devops-api-path: ${{ secrets.DEV_V6Y_DEVOPS_API_PATH }} | |
| dev-v6y-devops-api-port: ${{ secrets.DEV_V6Y_DEVOPS_API_PORT }} | |
| dev-v6y-dynamic-analyzer-api-path: ${{ secrets.DEV_V6Y_DYNAMIC_ANALYZER_API_PATH }} | |
| dev-v6y-dynamic-analyzer-api-port: ${{ secrets.DEV_V6Y_DYNAMIC_ANALYZER_API_PORT }} | |
| dev-v6y-main-api-path: ${{ secrets.DEV_V6Y_MAIN_API_PATH }} | |
| dev-v6y-main-api-port: ${{ secrets.DEV_V6Y_MAIN_API_PORT }} | |
| dev-v6y-bff-api-path: ${{ secrets.DEV_V6Y_BFF_API_PATH }} | |
| dev-v6y-bff-api-port: ${{ secrets.DEV_V6Y_BFF_API_PORT }} | |
| dev-next-public-v6y-bff-path: ${{ secrets.DEV_NEXT_PUBLIC_V6Y_BFF_PATH }} | |
| dev-nextauth-url: ${{ secrets.DEV_NEXTAUTH_URL }} | |
| - name: Setup pnpm and install dependencies | |
| uses: ./.github/actions/setup-pnpm-node | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Generate Prisma types | |
| run: cd v6y-libs/core-logic && npx prisma generate | |
| - run: pnpm build | |
| env: | |
| ENV: ${{ env.ENV }} | |
| PSQL_DB_HOST: ${{ env.PSQL_DB_HOST }} | |
| PSQL_DB_NAME: ${{ env.PSQL_DB_NAME }} | |
| PSQL_DB_USER: ${{ env.PSQL_DB_USER }} | |
| PSQL_DB_PASSWORD: ${{ env.PSQL_DB_PASSWORD }} | |
| PSQL_DB_PORT: ${{ env.PSQL_DB_PORT }} | |
| GITLAB_PRIVATE_TOKEN: ${{ env.GITLAB_PRIVATE_TOKEN }} | |
| GITHUB_PRIVATE_TOKEN: ${{ env.GITHUB_PRIVATE_TOKEN }} | |
| JWT_SECRET: ${{ env.JWT_SECRET }} | |
| V6Y_STATIC_ANALYZER_API_PATH: ${{ env.V6Y_STATIC_ANALYZER_API_PATH }} | |
| V6Y_STATIC_ANALYZER_API_PORT: ${{ env.V6Y_STATIC_ANALYZER_API_PORT }} | |
| V6Y_DEVOPS_API_PATH: ${{ env.V6Y_DEVOPS_API_PATH }} | |
| V6Y_DEVOPS_API_PORT: ${{ env.V6Y_DEVOPS_API_PORT }} | |
| V6Y_DYNAMIC_ANALYZER_API_PATH: ${{ env.V6Y_DYNAMIC_ANALYZER_API_PATH }} | |
| V6Y_DYNAMIC_ANALYZER_API_PORT: ${{ env.V6Y_DYNAMIC_ANALYZER_API_PORT }} | |
| V6Y_MAIN_API_PATH: ${{ env.V6Y_MAIN_API_PATH }} | |
| V6Y_MAIN_API_PORT: ${{ env.V6Y_MAIN_API_PORT }} | |
| V6Y_BFF_API_PATH: ${{ env.V6Y_BFF_API_PATH }} | |
| V6Y_BFF_API_PORT: ${{ env.V6Y_BFF_API_PORT }} | |
| NEXT_PUBLIC_V6Y_BFF_PATH: ${{ env.NEXT_PUBLIC_V6Y_BFF_PATH }} | |
| NEXTAUTH_URL: ${{ env.NEXTAUTH_URL }} |