stages: - build - test - deploy include: - project: 'turniere/turniere-infra' file: '/ci/pipeline.yaml' rails spec: stage: test image: $CI_REGISTRY_IMAGE/test/commits:$CI_COMMIT_SHA parallel: matrix: - RSPEC_NODE_INDEX: ["1", "2", "3", "4", "5", "6", "7", "8"] RSPEC_NODE_TOTAL: "8" rules: - if: $SKIP_TEST when: never - if: $SKIP_ALL_SPECS when: never - if: $SKIP_RAILS_SPEC when: never - if: $CI_PIPELINE_SOURCE != "push" when: never - when: always script: - cd /app - inv db-migrate - inv test-shard --node-index=$RSPEC_NODE_INDEX --node-total=$RSPEC_NODE_TOTAL artifacts: paths: - specs_with_runtime.txt expire_in: 30 days rails e2e spec: stage: test image: $CI_REGISTRY_IMAGE/test/commits:$CI_COMMIT_SHA services: - name: postgres:16 alias: postgres - name: $CI_REGISTRY_IMAGE/production/commits:$CI_COMMIT_SHA alias: app command: - bundle - exec - rails - s - -p - "3000" - -b - 0.0.0.0 variables: POSTGRES_DB: turniere_blackbox POSTGRES_USER: turniere POSTGRES_PASSWORD: turniere POSTGRES_URL: postgres://turniere:turniere@postgres:5432/turniere_blackbox POSTGRES_USERNAME: turniere SECRET_KEY_BASE: turniere-blackbox-secret-key-base-please-change-in-real-prod MAILGUN_API_KEY: blackbox-test-api-key MAILGUN_DOMAIN: blackbox.example.com RAILS_LOG_TO_STDOUT: "1" RAILS_SERVE_STATIC_FILES: "1" TURNIERE_E2E_BASE_URL: http://app:3000 TURNIERE_E2E_EMAIL: e2e@example.com TURNIERE_E2E_PASSWORD: password123 TURNIERE_E2E_USERNAME: e2e-user rules: - if: $SKIP_TEST when: never - if: $SKIP_ALL_SPECS when: never - if: $SKIP_E2E_SPEC when: never - if: $CI_PIPELINE_SOURCE != "push" when: never - when: always script: - cd /app - inv blackbox-service