security/Add RBAC guard to Trial Balance report controller #2003
Workflow file for this run
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: E2E | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| - develop | |
| paths: | |
| - '**.ts' | |
| - '**.tsx' | |
| - '**/tsconfig.json' | |
| - 'pnpm-lock.yaml' | |
| - '.github/workflows/e2e.yml' | |
| pull_request: | |
| paths: | |
| - '**.ts' | |
| - '**.tsx' | |
| - '**/tsconfig.json' | |
| - 'pnpm-lock.yaml' | |
| - '.github/workflows/e2e.yml' | |
| defaults: | |
| run: | |
| shell: 'bash' | |
| jobs: | |
| test_e2e: | |
| runs-on: ubuntu-latest | |
| name: Playwright tests | |
| timeout-minutes: 20 | |
| services: | |
| mysql: | |
| image: mariadb:10.6 | |
| env: | |
| MYSQL_ROOT_PASSWORD: root | |
| MYSQL_DATABASE: bigcapital_system | |
| MYSQL_USER: bigcapital | |
| MYSQL_PASSWORD: bigcapital | |
| ports: | |
| - 3306:3306 | |
| options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5 | |
| redis: | |
| image: redis:7-alpine | |
| ports: | |
| - 6379:6379 | |
| options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18.16.1 | |
| - uses: pnpm/action-setup@v2 | |
| with: | |
| version: 9 | |
| - name: Get pnpm store directory | |
| shell: bash | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT | |
| id: pnpm-cache | |
| - name: Setup pnpm cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
| key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-store- | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build shared packages | |
| run: pnpm build | |
| - name: Create server .env file | |
| run: | | |
| cat > packages/server/.env << EOF | |
| # Database | |
| DB_HOST=127.0.0.1 | |
| DB_USER=bigcapital | |
| DB_PASSWORD=bigcapital | |
| DB_ROOT_PASSWORD=root | |
| DB_CHARSET=utf8 | |
| # System database | |
| SYSTEM_DB_NAME=bigcapital_system | |
| # Tenant databases | |
| TENANT_DB_NAME_PERFIX=bigcapital_tenant_ | |
| # Application | |
| BASE_URL=http://localhost:3000 | |
| JWT_SECRET=test-jwt-secret-for-e2e-testing | |
| APP_JWT_SECRET=test-app-jwt-secret | |
| # Sign-up | |
| SIGNUP_DISABLED=false | |
| # API throttling | |
| THROTTLE_GLOBAL_TTL=60000 | |
| THROTTLE_GLOBAL_LIMIT=300 | |
| THROTTLE_AUTH_TTL=60000 | |
| THROTTLE_AUTH_LIMIT=30 | |
| # Redis | |
| REDIS_HOST=127.0.0.1 | |
| REDIS_PORT=6379 | |
| # S3 (placeholder values for E2E tests) | |
| S3_REGION=us-east-1 | |
| S3_ACCESS_KEY_ID=test-access-key | |
| S3_SECRET_ACCESS_KEY=test-secret-key | |
| S3_ENDPOINT=http://localhost:9000 | |
| S3_BUCKET=test-bucket | |
| # Mail (placeholder values for E2E tests) | |
| MAIL_HOST=localhost | |
| MAIL_PORT=1025 | |
| MAIL_FROM_NAME=Bigcapital | |
| MAIL_FROM_ADDRESS=test@bigcapital.app | |
| EOF | |
| - name: Run database migrations | |
| run: pnpm system:migrate:latest | |
| - name: Start server in background | |
| run: | | |
| cd packages/server && pnpm start:prod & | |
| sleep 10 | |
| env: | |
| NODE_ENV: production | |
| - name: Start webapp in background | |
| run: | | |
| cd packages/webapp && pnpm dev & | |
| sleep 10 | |
| - name: Install Playwright browsers | |
| run: pnpm exec playwright install chromium | |
| - name: Run E2E tests | |
| run: pnpm run test:e2e | |
| env: | |
| PLAYWRIGHT_TEST_BASE_URL: http://localhost:4000 | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: playwright-report | |
| path: test-results/ | |
| retention-days: 30 |