mirror of
https://github.com/yandex/pgmigrate.git
synced 2024-09-19 08:07:22 +03:00
python 3.6 instead of puthon3.5
postgresql now uses official docker image (and not installs into python container) docker-compose file added
This commit is contained in:
parent
21849625b2
commit
d9a5eff1fc
18
.travis.yml
18
.travis.yml
@ -1,7 +1,21 @@
|
||||
sudo: required
|
||||
|
||||
services:
|
||||
- docker
|
||||
- docker
|
||||
|
||||
before_script:
|
||||
- docker-compose build
|
||||
|
||||
script:
|
||||
- make test
|
||||
- docker-compose run --rm pgmigrate
|
||||
- docker-compose stop
|
||||
|
||||
env:
|
||||
DOCKER_COMPOSE_VERSION: 1.11.2
|
||||
|
||||
before_install:
|
||||
- sudo rm /usr/local/bin/docker-compose
|
||||
- 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
|
||||
|
||||
|
17
Dockerfile
17
Dockerfile
@ -1,31 +1,18 @@
|
||||
# vim:set ft=dockerfile:
|
||||
FROM ubuntu:xenial
|
||||
|
||||
# explicitly set user/group IDs
|
||||
RUN groupadd -r postgres --gid=999 && useradd -r -d /var/lib/postgresql -g postgres --uid=999 postgres
|
||||
FROM python:3.6
|
||||
|
||||
# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default
|
||||
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
|
||||
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
|
||||
ENV LANG en_US.utf8
|
||||
|
||||
RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
|
||||
|
||||
ENV PG_MAJOR 9.6
|
||||
|
||||
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y postgresql-common \
|
||||
sudo \
|
||||
libpq-dev \
|
||||
python-pip \
|
||||
python3.5-dev \
|
||||
python2.7-dev \
|
||||
postgresql-$PG_MAJOR \
|
||||
postgresql-contrib-$PG_MAJOR \
|
||||
&& pip install tox
|
||||
|
||||
COPY ./ /dist
|
||||
WORKDIR /dist
|
||||
|
||||
CMD ["/dist/run_test.sh"]
|
||||
|
6
Makefile
6
Makefile
@ -1,5 +1,7 @@
|
||||
.PHONY: test
|
||||
|
||||
test:
|
||||
docker build -t pgmigrate .
|
||||
docker run -t pgmigrate
|
||||
docker-compose build
|
||||
docker-compose run --rm pgmigrate
|
||||
docker-compose stop
|
||||
|
||||
|
29
docker-compose.yml
Normal file
29
docker-compose.yml
Normal file
@ -0,0 +1,29 @@
|
||||
version: '2.1'
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:alpine
|
||||
container_name: postgres
|
||||
environment:
|
||||
TERM: "rxvt"
|
||||
POSTGRES_USER: "postgres"
|
||||
POSTGRES_PASSWORD: "postgres"
|
||||
restart: always
|
||||
|
||||
pgmigrate:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: pgmigrate
|
||||
volumes:
|
||||
- ./:/dist
|
||||
environment:
|
||||
TERM: "rxvt"
|
||||
POSTGRES_USER: "postgres"
|
||||
POSTGRES_PASSWORD: "postgres"
|
||||
working_dir: /dist
|
||||
links:
|
||||
- postgres
|
||||
depends_on:
|
||||
- postgres
|
||||
restart: always
|
@ -6,11 +6,11 @@ from behave import given
|
||||
@given('database and connection')
|
||||
def step_impl(context):
|
||||
context.conn = None
|
||||
conn = psycopg2.connect('dbname=postgres')
|
||||
conn = psycopg2.connect('dbname=postgres user=postgres password=postgres host=postgres port=5432')
|
||||
conn.autocommit = True
|
||||
cur = conn.cursor()
|
||||
cur.execute("select pg_terminate_backend(pid) " +
|
||||
"from pg_stat_activity where datname='pgmigratetest'")
|
||||
cur.execute('drop database if exists pgmigratetest')
|
||||
cur.execute('create database pgmigratetest')
|
||||
context.conn = psycopg2.connect('dbname=pgmigratetest')
|
||||
context.conn = psycopg2.connect('dbname=pgmigratetest user=postgres password=postgres host=postgres port=5432')
|
||||
|
@ -10,7 +10,7 @@ from behave import given, then, when
|
||||
def run_pgmigrate(migr_dir, args):
|
||||
cmd = ['coverage', 'run', '-p', '--include=pgmigrate.py',
|
||||
'./pgmigrate.py', '-vvv', '-d', migr_dir,
|
||||
'-c', 'dbname=pgmigratetest'] + str(args).split()
|
||||
'-c', 'dbname=pgmigratetest user=postgres password=postgres host=postgres port=5432'] + str(args).split()
|
||||
|
||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE)
|
||||
|
@ -2,9 +2,5 @@
|
||||
|
||||
set -e
|
||||
|
||||
chown -R postgres:postgres /dist
|
||||
mkdir -p /var/log/pogsgresql
|
||||
chown postgres:postgres /var/log/pogsgresql
|
||||
sudo -u postgres /usr/lib/postgresql/9.6/bin/pg_ctl -D /etc/postgresql/9.6/main -l /var/log/pogsgresql/postgresql-9.6-main.log start
|
||||
cd /dist
|
||||
sudo -u postgres -i tox -c /dist/tox.ini
|
||||
tox -c /dist/tox.ini
|
||||
|
||||
|
4
tox.ini
4
tox.ini
@ -4,7 +4,7 @@
|
||||
# and then run "tox" from this directory.
|
||||
|
||||
[tox]
|
||||
envlist = py27, py35, flake8, pylint
|
||||
envlist = py27, py36, flake8, pylint
|
||||
|
||||
[testenv:py27]
|
||||
whitelist_externals = rm
|
||||
@ -18,7 +18,7 @@ deps = behave
|
||||
importlib
|
||||
coverage
|
||||
|
||||
[testenv:py35]
|
||||
[testenv:py36]
|
||||
whitelist_externals = rm
|
||||
commands = rm -rf htmlcov
|
||||
coverage erase
|
||||
|
Loading…
Reference in New Issue
Block a user