stages: - build - test - deploy variables: DOCKER_IMAGE_ENVS: "production test" include: - project: 'turniere/turniere-infra' file: '/ci/pipeline.yaml' rails spec: stage: test tags: - docker image: $CI_REGISTRY_IMAGE/test/commits:$CI_COMMIT_SHA 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 rails e2e spec: stage: test tags: - docker 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: FF_NETWORK_PER_BUILD: "true" 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" NO_PROXY: app,postgres,localhost,127.0.0.1 no_proxy: app,postgres,localhost,127.0.0.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