--- image: ubuntu:latest definitions: caches: devbox: ~/.cache/devbox apt-lists: /var/lib/apt/lists apt-cache: /var/cache/apt/archives services: docker: memory: 24000 steps: - step: &fullsuite name: Fullsuite size: 16x services: - docker caches: - devbox - apt-lists - apt-cache script: - export DOCKER_BUILDKIT=0 - export DOCKER_HOST=tcp://localhost:2375 - export TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=tcp://localhost:2375 - export TESTCONTAINERS_RYUK_DISABLED=true - export TESTCONTAINERS_RYUK_CONNECTION_TIMEOUT=60s - export DOCKER_CLIENT_TIMEOUT=120 - rm /etc/apt/apt.conf.d/docker-clean || true - apt-get update - apt-get install -y curl git - curl -fsSL https://get.jetify.com/devbox | bash -s -- -f - export PATH="/root/.local/bin:$PATH" - touch .env # Pre-pull test container images in parallel to avoid timeout on first run - docker pull postgres:17.2-alpine3.21 & - docker pull localstack/localstack:4.1.0 & - docker pull mockserver/mockserver:5.15.0 & - wait - devbox install - export DISABLE_AUTH=true - devbox run -- AWS_PROFILE="" task fullsuite:ci - step: &fullsuite-and-publish name: Fullsuite and Publish size: 16x oidc: true deployment: dev services: - docker caches: - devbox - apt-lists - apt-cache script: - export DOCKER_BUILDKIT=0 - export DOCKER_HOST=tcp://localhost:2375 - export TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=tcp://localhost:2375 - export TESTCONTAINERS_RYUK_DISABLED=true - export TESTCONTAINERS_RYUK_CONNECTION_TIMEOUT=60s - export DOCKER_CLIENT_TIMEOUT=120 - export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-us-east-1} - export IMAGE_TAG=$ECR_REGISTRY/doczy/query-orchestration:$BITBUCKET_COMMIT - export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token - echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token - rm /etc/apt/apt.conf.d/docker-clean || true - apt-get update - apt-get install -y curl git unzip - mkdir -p out - cd out - curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" - unzip awscliv2.zip - ./aws/install - curl -fsSL https://get.jetify.com/devbox | bash -s -- -f - export PATH="/root/.local/bin:$PATH" - cd .. - aws sts get-caller-identity --query "Arn" --output text - | aws ecr get-login-password --region $AWS_DEFAULT_REGION | \ docker login --username AWS --password-stdin $ECR_REGISTRY - touch .env # Pre-pull test container images in parallel to avoid timeout on first run - docker pull postgres:17.2-alpine3.21 & - docker pull localstack/localstack:4.1.0 & - docker pull mockserver/mockserver:5.15.0 & - wait - devbox install - export DISABLE_AUTH=true - devbox run -- AWS_PROFILE="" task fullsuite:ci - docker tag queryorchestration:latest $IMAGE_TAG - docker push $IMAGE_TAG after-script: - docker stop registry || true pipelines: branches: main: - step: *fullsuite-and-publish pull-requests: "**": - step: *fullsuite