From 77feae3716802280029beb4782b8fd8043555f54 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Thu, 23 Jul 2020 18:09:39 -0400 Subject: [PATCH] Testing out a travis 3. --- .travis.yml | 2 +- docker/travis/docker-compose.yml | 113 +++++++++++++++++++++++++++++++ docker/travis/run-tests.sh | 25 +++++++ 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 docker/travis/docker-compose.yml create mode 100755 docker/travis/run-tests.sh diff --git a/.travis.yml b/.travis.yml index 091e7048b..fdaf39090 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ before_install: - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose - chmod +x docker-compose - sudo mv docker-compose /usr/local/bin - - cd docker/federation-test + - cd docker/travis # install: # - docker build -t hnakamur/example . script: diff --git a/docker/travis/docker-compose.yml b/docker/travis/docker-compose.yml new file mode 100644 index 000000000..0c8915eb8 --- /dev/null +++ b/docker/travis/docker-compose.yml @@ -0,0 +1,113 @@ +version: '3.3' + +services: + nginx: + image: nginx:1.17-alpine + ports: + - "8540:8540" + - "8550:8550" + - "8560:8560" + volumes: + # Hack to make this work from both docker/federation/ and docker/federation-test/ + - ../federation/nginx.conf:/etc/nginx/nginx.conf + restart: on-failure + depends_on: + - lemmy-alpha + - pictrs + - lemmy-beta + - lemmy-gamma + - iframely + + pictrs: + restart: always + image: asonix/pictrs:v0.1.13-r0 + user: 991:991 + volumes: + - ./volumes/pictrs_alpha:/mnt + + lemmy-alpha: + image: dev_lemmy:latest + environment: + - LEMMY_HOSTNAME=lemmy-alpha:8540 + - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_alpha:5432/lemmy + - LEMMY_JWT_SECRET=changeme + - LEMMY_FRONT_END_DIR=/app/dist + - LEMMY_FEDERATION__ENABLED=true + - LEMMY_FEDERATION__TLS_ENABLED=false + - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta,lemmy-gamma + - LEMMY_PORT=8540 + - LEMMY_SETUP__ADMIN_USERNAME=lemmy_alpha + - LEMMY_SETUP__ADMIN_PASSWORD=lemmy + - LEMMY_SETUP__SITE_NAME=lemmy-alpha + - RUST_BACKTRACE=1 + - RUST_LOG=debug + depends_on: + - postgres_alpha + postgres_alpha: + image: postgres:12-alpine + environment: + - POSTGRES_USER=lemmy + - POSTGRES_PASSWORD=password + - POSTGRES_DB=lemmy + volumes: + - ./volumes/postgres_alpha:/var/lib/postgresql/data + + lemmy-beta: + image: dev_lemmy:latest + environment: + - LEMMY_HOSTNAME=lemmy-beta:8550 + - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_beta:5432/lemmy + - LEMMY_JWT_SECRET=changeme + - LEMMY_FRONT_END_DIR=/app/dist + - LEMMY_FEDERATION__ENABLED=true + - LEMMY_FEDERATION__TLS_ENABLED=false + - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-gamma + - LEMMY_PORT=8550 + - LEMMY_SETUP__ADMIN_USERNAME=lemmy_beta + - LEMMY_SETUP__ADMIN_PASSWORD=lemmy + - LEMMY_SETUP__SITE_NAME=lemmy-beta + - RUST_BACKTRACE=1 + - RUST_LOG=debug + depends_on: + - postgres_beta + postgres_beta: + image: postgres:12-alpine + environment: + - POSTGRES_USER=lemmy + - POSTGRES_PASSWORD=password + - POSTGRES_DB=lemmy + volumes: + - ./volumes/postgres_beta:/var/lib/postgresql/data + + lemmy-gamma: + image: dev_lemmy:latest + environment: + - LEMMY_HOSTNAME=lemmy-gamma:8560 + - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_gamma:5432/lemmy + - LEMMY_JWT_SECRET=changeme + - LEMMY_FRONT_END_DIR=/app/dist + - LEMMY_FEDERATION__ENABLED=true + - LEMMY_FEDERATION__TLS_ENABLED=false + - LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-beta + - LEMMY_PORT=8560 + - LEMMY_SETUP__ADMIN_USERNAME=lemmy_gamma + - LEMMY_SETUP__ADMIN_PASSWORD=lemmy + - LEMMY_SETUP__SITE_NAME=lemmy-gamma + - RUST_BACKTRACE=1 + - RUST_LOG=debug + depends_on: + - postgres_gamma + postgres_gamma: + image: postgres:12-alpine + environment: + - POSTGRES_USER=lemmy + - POSTGRES_PASSWORD=password + - POSTGRES_DB=lemmy + volumes: + - ./volumes/postgres_gamma:/var/lib/postgresql/data + + iframely: + image: dogbin/iframely:latest + volumes: + - ../iframely.config.local.js:/iframely/config.local.js:ro + restart: always diff --git a/docker/travis/run-tests.sh b/docker/travis/run-tests.sh new file mode 100755 index 000000000..c5d529b27 --- /dev/null +++ b/docker/travis/run-tests.sh @@ -0,0 +1,25 @@ +#!/bin/bash +set -e + +# make sure there are no old containers or old data around +sudo docker-compose down +sudo rm -rf volumes + +mkdir -p volumes/pictrs_{alpha,beta,gamma} +sudo chown -R 991:991 volumes/pictrs_{alpha,beta,gamma} + +sudo docker build ../../ --file ../dev/Dockerfile --tag dev_lemmy:latest + +sudo docker-compose up -d + +pushd ../../ui +echo "Waiting for Lemmy to start..." +while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8540/api/v1/site')" != "200" ]]; do sleep 1; done +while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8550/api/v1/site')" != "200" ]]; do sleep 1; done +while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8560/api/v1/site')" != "200" ]]; do sleep 1; done +yarn api-test || true +popd + +sudo docker-compose down + +sudo rm -r volumes/