ditto/.gitlab-ci.yml

96 lines
No EOL
2.4 KiB
YAML

image: denoland/deno:2.2.2
default:
interruptible: true
stages:
- test
- e2e-setup
- e2e-test
# Original test stage
test:
stage: test
timeout: 2 minutes
before_script:
# Install nak for test environment
- apt-get update && apt-get install -y curl build-essential
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- . "$HOME/.cargo/env" && cargo install nak
# Generate NSEC
- export DITTO_NSEC=$(nak key generate | nak encode nsec)
script:
- deno fmt --check
- deno task lint
- deno task check
- deno task test --ignore=packages/transcode --coverage=cov_profile
- deno coverage cov_profile
coverage: /All files[^\|]*\|[^\|]*\s+([\d\.]+)/
services:
- postgres:16
variables:
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
POSTGRES_HOST_AUTH_METHOD: trust
RUST_BACKTRACE: 1
artifacts:
when: always
paths:
- deno-test.xml
reports:
junit: deno-test.xml
# Start E2E environment
e2e-environment:
stage: e2e-setup
image: docker/compose:latest
services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_TLS_CERTDIR: ""
DOCKER_DRIVER: overlay2
script:
- docker compose -f docker-compose.test.yml up -d
# Wait for Ditto to be healthy
- |
until docker compose -f docker-compose.test.yml ps ditto | grep -q "healthy"; do
echo "Waiting for Ditto to be ready..."
sleep 2
done
# Generate dynamic child pipeline configuration
- |
cat > child-pipeline.yml << EOF
playwright-tests:
trigger:
project: your-group/ditto-playwright
strategy: depend
variables:
BASE_URL: http://localhost:4036
CI_PROJECT_ID: ${CI_PROJECT_ID}
CI_MERGE_REQUEST_IID: ${CI_MERGE_REQUEST_IID}
CI_COMMIT_SHA: ${CI_COMMIT_SHA}
CI_COMMIT_SHORT_SHA: ${CI_COMMIT_SHORT_SHA}
CI_COMMIT_REF_NAME: ${CI_COMMIT_REF_NAME}
EOF
artifacts:
paths:
- child-pipeline.yml
only:
- merge_requests
# Trigger child pipeline
e2e-test:
stage: e2e-test
trigger:
include:
- artifact: child-pipeline.yml
job: e2e-environment
strategy: depend
needs:
- e2e-environment
variables:
BASE_URL: http://localhost:4036
after_script:
- docker compose -f docker-compose.test.yml down -v
only:
- merge_requests