atst/.travis.yml
Patrick Smith a6cf27ef5f Make tests run on CI
Specify the entrypoint and cmd on the tester_image2 so that it runs
tests. I was hoping to not have to duplicate the entrypoint and cmd
here, but the results from `docker inspect ${TESTER_IMAGE1_NAME} -f "{{ .Config.Cmd }}"`
were not suitable to pass back to `docker inspect` or `docker run`.
2018-08-16 17:08:07 -04:00

57 lines
2.1 KiB
YAML

sudo: required
language: minimal
services:
- docker
git:
submodules: false
env:
global:
- PROD_IMAGE_NAME=atst-prod
- TESTER_IMAGE1_NAME=atst-tester-nocrls
- TESTER_IMAGE2_NAME=atst-tester
cache:
directories:
- crl
before_install:
# Use sed to replace the SSH URL with the public URL
- sed -i 's/git@github.com:/https:\/\/github.com\//' .gitmodules
# Manually initialize submodules
- git submodule update --init --recursive
before_script:
- rm -rf ./crl/*
- docker run -d --name postgres96 postgres:9.6-alpine
- docker run -d --name redis redis:4.0.10-alpine
- docker run --link postgres96:postgres96 --link redis:redis waisbrot/wait
- export postgres_ip="$(docker inspect -f "{{ .NetworkSettings.IPAddress }}" postgres96)"
- export redis_ip="$(docker inspect -f "{{ .NetworkSettings.IPAddress }}" redis)"
- docker login -u $ATAT_DOCKER_REGISTRY_USERNAME -p $ATAT_DOCKER_REGISTRY_PASSWORD $ATAT_DOCKER_REGISTRY_URL
- docker build --tag "${TESTER_IMAGE1_NAME}" --add-host "postgreshost:${postgres_ip}" --add-host "redishost:${redis_ip}" . -f deploy/docker/tester/Dockerfile
script:
- docker run -d --entrypoint='/bin/sh' -t --name current-atst-tester "${TESTER_IMAGE1_NAME}"
- docker container exec -t current-atst-tester script/sync-crls
- docker commit
--change='ENTRYPOINT ["/usr/bin/dumb-init", "--"]'
--change='CMD ["bash", "-c", "${APP_DIR}/script/cibuild"]'
current-atst-tester
"${TESTER_IMAGE2_NAME}"
- docker cp current-atst-tester:/opt/atat/atst/crl/. ./crl/
- docker container stop current-atst-tester
- docker run --add-host "postgreshost:${postgres_ip}" --add-host "redishost:${redis_ip}" "${TESTER_IMAGE2_NAME}"
before_deploy:
- docker build --tag "${PROD_IMAGE_NAME}" . -f deploy/docker/prod/Dockerfile
- git_sha="$(git rev-parse --short HEAD)"
- remote_image_name="${ATAT_DOCKER_REGISTRY_URL}/${PROD_IMAGE_NAME}:${git_sha}"
- docker tag "${PROD_IMAGE_NAME}" "${remote_image_name}"
- docker images
- docker push "${remote_image_name}"
deploy:
provider: script
script: echo "** Image push only for now... stay tuned! **"
on:
branch: master