variables: DOCKER_TLS_CERTDIR: "/certs" CONTAINER_IMAGE: "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA" RAILS_ENV: "production" # Add this service services: - docker:20.10.16-dind # Cache common dependencies to speed up builds cache: key: ${CI_COMMIT_REF_SLUG} paths: - vendor/bundle - tmp/cache - .bundle stages: - build - test - deploy before_script: - docker info - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY build: stage: build image: docker:20.10.16 script: - docker build -t $CONTAINER_IMAGE . - docker tag $CONTAINER_IMAGE $CI_REGISTRY_IMAGE:latest - docker push $CONTAINER_IMAGE - docker push $CI_REGISTRY_IMAGE:latest only: - main - merge_requests # test: # stage: test # image: ruby:3.2.2 # services: # - postgres:latest # - docker:20.10.16-dind # variables: # POSTGRES_DB: "rails_test" # POSTGRES_USER: "postgres" # POSTGRES_PASSWORD: "password" # DATABASE_URL: "postgresql://postgres:password@postgres:5432/rails_test" # script: # - apt-get update -qq && apt-get install -y docker.io # - docker run --rm $CONTAINER_IMAGE bin/rails db:create db:migrate RAILS_ENV=test # - docker run --rm $CONTAINER_IMAGE bin/rails test # only: # - main # - merge_requests # deploy: # stage: deploy # script: # - echo "Deploying to production..." # only: # - main