63 lines
No EOL
1.4 KiB
YAML
63 lines
No EOL
1.4 KiB
YAML
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 |