feat(billing): embed Stripe Payment Element in onboarding #572
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 Internal App Twenty Meeting Bot | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| changed-files-check: | |
| uses: ./.github/workflows/changed-files.yaml | |
| with: | |
| files: | | |
| packages/twenty-apps/internal/twenty-meeting-bot/** | |
| packages/twenty-sdk/** | |
| packages/twenty-client-sdk/** | |
| packages/twenty-shared/** | |
| packages/twenty-server/** | |
| !packages/twenty-sdk/package.json | |
| !packages/twenty-client-sdk/package.json | |
| !packages/twenty-shared/package.json | |
| !packages/twenty-server/package.json | |
| internal-app-twenty-meeting-bot: | |
| needs: changed-files-check | |
| if: needs.changed-files-check.outputs.any_changed == 'true' | |
| timeout-minutes: 30 | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:18 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| redis: | |
| image: redis | |
| ports: | |
| - 6379:6379 | |
| env: | |
| TWENTY_API_URL: http://localhost:3000 | |
| TWENTY_API_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ1c2VySWQiOiIyMDIwMjAyMC1lNmI1LTQ2ODAtOGEzMi1iODIwOTczNzE1NmIiLCJ3b3Jrc3BhY2VJZCI6IjIwMjAyMDIwLTFjMjUtNGQwMi1iZjI1LTZhZWNjZjdlYTQxOSIsIndvcmtzcGFjZU1lbWJlcklkIjoiMjAyMDIwMjAtNDYzZi00MzViLTgyOGMtMTA3ZTAwN2EyNzExIiwidXNlcldvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWU3Yy00M2Q5LWE1ZGItNjg1YjUwNjlkODE2IiwidHlwZSI6IkFDQ0VTUyIsImF1dGhQcm92aWRlciI6InBhc3N3b3JkIiwiaWF0IjoxNzUxMjgxNzA0LCJleHAiOjIwNjY4NTc3MDR9.HMGqCsVlOAPVUBhKSGlD1X86VoHKt4LIUtET3CGIdik | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - name: Install dependencies | |
| uses: ./.github/actions/yarn-install | |
| - name: Build SDK packages | |
| run: npx nx build twenty-sdk | |
| # The integration tests import the CoreApiClient that `appDevOnce` | |
| # generates into the app's own node_modules/twenty-client-sdk; without | |
| # this install the import falls back to the workspace stub and throws. | |
| - name: Install app dependencies | |
| working-directory: packages/twenty-apps/internal/twenty-meeting-bot | |
| run: yarn install --immutable | |
| - name: Typecheck | |
| working-directory: packages/twenty-apps/internal/twenty-meeting-bot | |
| run: npx tsc --build tsconfig.json --force | |
| - name: Run unit tests | |
| working-directory: packages/twenty-apps/internal/twenty-meeting-bot | |
| run: npx vitest run --config vitest.unit.config.ts | |
| - name: Setup server environment | |
| run: npx nx reset:env:e2e-testing-server twenty-server | |
| - name: Create databases | |
| run: | | |
| PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "default";' | |
| PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "test";' | |
| - name: Setup database | |
| run: npx nx run twenty-server:database:reset | |
| - name: Start server | |
| run: nohup npx nx start:ci twenty-server & | |
| - name: Wait for server to be ready | |
| run: npx wait-on http://localhost:3000/healthz --timeout 120000 --interval 1000 | |
| - name: Run integration tests | |
| working-directory: packages/twenty-apps/internal/twenty-meeting-bot | |
| run: npx vitest run | |
| ci-internal-app-twenty-meeting-bot-status-check: | |
| if: always() && !cancelled() | |
| timeout-minutes: 5 | |
| runs-on: ubuntu-latest | |
| needs: [changed-files-check, internal-app-twenty-meeting-bot] | |
| steps: | |
| - name: Fail job if any needs failed | |
| if: contains(needs.*.result, 'failure') | |
| run: exit 1 |