Feat/cloud fn test #2
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: Jobs E2E | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - v1 | |
| pull_request: | |
| branches: | |
| - main | |
| - v1 | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }}-jobs-e2e | |
| cancel-in-progress: true | |
| jobs: | |
| jobs-e2e: | |
| runs-on: ubuntu-latest | |
| env: | |
| PGHOST: localhost | |
| PGPORT: 5432 | |
| PGUSER: postgres | |
| PGPASSWORD: password | |
| PGDATABASE: launchql | |
| TEST_DB: launchql | |
| TEST_GRAPHQL_URL: http://127.0.0.1:3000/graphql | |
| TEST_GRAPHQL_HOST: admin.localhost | |
| services: | |
| pg_db: | |
| image: pyramation/pgvector:13.3-alpine | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: password | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| ports: | |
| - 5432:5432 | |
| steps: | |
| - name: Configure Git (for tests) | |
| run: | | |
| git config --global user.name "CI Test User" | |
| git config --global user.email "ci@example.com" | |
| - name: checkout | |
| uses: actions/checkout@v4 | |
| - name: checkout constructive-db | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: constructive-io/constructive-db | |
| path: constructive-db | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v2 | |
| with: | |
| version: 10 | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Build packages | |
| run: pnpm run build | |
| - name: Setup jobs database | |
| run: | | |
| PGDATABASE=postgres createdb launchql || true | |
| pnpm --filter pgpm exec pgpm admin-users bootstrap --yes --cwd constructive-db | |
| pnpm --filter pgpm exec pgpm admin-users add --test --yes --cwd constructive-db | |
| pnpm --filter pgpm exec pgpm deploy --yes --database "$PGDATABASE" --package app-svc-local --cwd constructive-db | |
| pnpm --filter pgpm exec pgpm deploy --yes --database "$PGDATABASE" --package metaschema --cwd constructive-db | |
| pnpm --filter pgpm exec pgpm deploy --yes --database "$PGDATABASE" --package pgpm-database-jobs --cwd constructive-db | |
| - name: Resolve database id | |
| run: | | |
| DBID=$(psql -h "$PGHOST" -U "$PGUSER" -d "$PGDATABASE" -Atc "SELECT id FROM metaschema_public.database ORDER BY created_at LIMIT 1;") | |
| if [ -z "$DBID" ]; then | |
| echo "No database id found in metaschema_public.database" >&2 | |
| exit 1 | |
| fi | |
| echo "TEST_DATABASE_ID=$DBID" >> "$GITHUB_ENV" | |
| echo "DEFAULT_DATABASE_ID=$DBID" >> "$GITHUB_ENV" | |
| - name: Start combined server | |
| env: | |
| NODE_ENV: test | |
| PORT: "3000" | |
| SERVER_HOST: "127.0.0.1" | |
| API_ENABLE_META: "false" | |
| API_EXPOSED_SCHEMAS: "app_jobs,lql_private,lql_public,lql_roles_public,metaschema_modules_public,metaschema_public,services_public" | |
| API_ANON_ROLE: "administrator" | |
| API_ROLE_NAME: "administrator" | |
| API_DEFAULT_DATABASE_ID: ${{ env.DEFAULT_DATABASE_ID }} | |
| CONSTRUCTIVE_GRAPHQL_ENABLED: "true" | |
| CONSTRUCTIVE_JOBS_ENABLED: "true" | |
| CONSTRUCTIVE_FUNCTIONS: "simple-email,send-email-link" | |
| CONSTRUCTIVE_FUNCTION_PORTS: "simple-email:8081,send-email-link:8082" | |
| SIMPLE_EMAIL_DRY_RUN: "true" | |
| SEND_EMAIL_LINK_DRY_RUN: "true" | |
| LOCAL_APP_PORT: "3000" | |
| GRAPHQL_URL: "http://127.0.0.1:3000/graphql" | |
| META_GRAPHQL_URL: "http://127.0.0.1:3000/graphql" | |
| GRAPHQL_HOST_HEADER: "admin.localhost" | |
| META_GRAPHQL_HOST_HEADER: "admin.localhost" | |
| MAILGUN_DOMAIN: "mg.constructive.io" | |
| MAILGUN_FROM: "no-reply@mg.constructive.io" | |
| MAILGUN_REPLY: "info@mg.constructive.io" | |
| MAILGUN_API_KEY: "change-me-mailgun-api-key" | |
| MAILGUN_KEY: "change-me-mailgun-api-key" | |
| JOBS_SUPPORT_ANY: "false" | |
| JOBS_SUPPORTED: "simple-email,send-email-link" | |
| INTERNAL_GATEWAY_DEVELOPMENT_MAP: '{"simple-email":"http://127.0.0.1:8081","send-email-link":"http://127.0.0.1:8082"}' | |
| INTERNAL_JOBS_CALLBACK_PORT: "8080" | |
| JOBS_CALLBACK_BASE_URL: "http://127.0.0.1:8080/callback" | |
| FEATURES_POSTGIS: "false" | |
| run: | | |
| nohup node packages/server/dist/run.js > /tmp/combined-server.log 2>&1 & | |
| echo $! > /tmp/combined-server.pid | |
| - name: Test server jobs e2e | |
| run: pnpm --filter @constructive-io/server test | |
| - name: Stop combined server | |
| if: always() | |
| run: | | |
| if [ -f /tmp/combined-server.pid ]; then | |
| kill "$(cat /tmp/combined-server.pid)" || true | |
| fi |