.travis.yml
language: python
dist: bionic
python: 3.6
addons:
apt:
packages:
- nginx
stages:
- lint
- test
- test-docs
- test-docker
- deploy
script:
- export PROXY_CPCONFIG="$PWD/server.conf"
- cd tests
- coverage run -m pytest -xsv .
- coverage report --include='*pacifica/proxy/*' -m --fail-under 100
before_script:
- pip install ansible
- ansible-galaxy install pacifica.ansible_pacifica pacifica.ansible_travis
- ansible-playbook ~/.ansible/roles/pacifica.ansible_travis/molecule/common/playbook.yml -i ~/.ansible/roles/pacifica.ansible_travis/molecule/common/inventory.yml -e "ansible_python_interpreter=/home/travis/virtualenv/python${TRAVIS_PYTHON_VERSION}/bin/python travis_virtualenv=python${TRAVIS_PYTHON_VERSION} github_repository=proxy"
- |
sed -e "s|@@ROOT_DIR@@|$PWD|g;s|@@CONF_DIR@@|/etc/nginx|g" < travis/nginx.conf.in > travis/nginx.conf
nginx -c $PWD/travis/nginx.conf &
echo $! > nginx.pid
- |
curl -X PUT -H 'Last-Modified: Sun, 06 Nov 1994 08:49:37 GMT' --upload-file README.md http://127.0.0.1:8080/104
readme_size=$(stat -c '%s' README.md)
readme_sha1=$(sha1sum README.md | awk '{ print $1 }')
echo '{ "hashsum": "'$readme_sha1'", "hashtype": "sha1", "size": '$readme_size'}' > /tmp/file-104-update.json
curl -X POST -H 'content-type: application/json' -T /tmp/file-104-update.json 'http://localhost:8121/files?_id=104'
jobs:
include:
- stage: lint
before_script: skip
script: pre-commit run -a
- python: 3.7
before_script: skip
script: pre-commit run -a
- python: 3.8
before_script: skip
script: pre-commit run -a
- stage: test
- python: 3.7
- python: 3.8
- stage: test-docs
python: 3.8
before_script: skip
script: >
cd docs;
sphinx-build -T -E -b readthedocs -d _build/doctrees-readthedocs -D language=en . _build/html;
sphinx-build -T -b readthedocssinglehtmllocalmedia -d _build/doctrees-readthedocssinglehtmllocalmedia -D language=en . _build/localmedia;
sphinx-build -b latex -D language=en -d _build/doctrees . _build/latex;
sphinx-build -T -b epub -d _build/doctrees-epub -D language=en . _build/epub
- stage: test-docker
python: 3.8
sudo: required
before_script: skip
services:
- docker
script:
- |
docker-compose build --pull;
docker-compose pull;
docker-compose up -d;
- |
MAX_TRIES=60;
HTTP_CODE=$(docker-compose exec metadataserver curl -sL -w "%{http_code}\\n" localhost:8121/keys -o /dev/null || true);
while [[ $HTTP_CODE != 200 && $MAX_TRIES > 0 ]] ; do
sleep 1;
HTTP_CODE=$(docker-compose exec metadataserver curl -sL -w "%{http_code}\\n" localhost:8121/keys -o /dev/null || true);
MAX_TRIES=$(( MAX_TRIES - 1 ));
done;
docker-compose exec metadataserver /bin/bash -c 'cd /usr/src/app/tests; python test_files/loadit_test.py';
- |
set -x;
curl -X PUT -H 'Last-Modified: Sun, 06 Nov 1994 08:49:37 GMT' -T README.md http://127.0.0.1:8080/104;
readme_size=$(stat -c '%s' README.md);
readme_sha1=$(sha1sum README.md | awk '{ print $1 }');
echo '{ "hashsum": "'$readme_sha1'", "hashtype": "sha1", "size": '$readme_size'}' > /tmp/file-104-update.json;
curl -X POST -H 'content-type: application/json' -T /tmp/file-104-update.json 'http://localhost:8121/files?_id=104';
curl -o README.md.test 'http://127.0.0.1:8180/files/sha1/'$readme_sha1;
set +x;
if [[ $(diff -u README.md README.md.test | wc -l) -gt 0 ]] ; then exit -1; fi;
- stage: deploy
python: 3.8
language: python
before_install: skip
script: skip
deploy:
skip_cleanup: true
provider: pypi
user: dmlb2000
distributions: sdist bdist_wheel
password:
secure: HGXpMF9NWltMBz/J3dtb1yE+A0LK7aryUTU8jpAo3sWDKpnQG/SvNgNBTeLAgqVT+92JlS1Emsmfo2WZ6FggIDWmawCM3lZ7H+1DVkEq4muyCj+96rUSaoLgisAvg8B5ek6zwnY3pAC7XU4eFiXk/D/jzZiPAPMxhsuHd90fDzsxRYrRC00/JOxToLHIOnnfVSonSfv5evDWs0EC4aujRZuscBxRUA+qPbyrvhL6UYVBwPzxnejJcDLCyzd5+rv0Wmpk/hWQZKSt5XwgE/qiPGV8wBcAnGjU1W0yhxonAB17rIb4dkt26B4OLOmn7+kzdENlq7NjODU9iAxzJ1nRdPtHcI7TGW6/cNSMbSyDilr4IM4KkQceZIHchMNO6IpIuqjkp8+71U9penHwkFMDwR0bcD+sUCPtoO/kbZCvKa4kPsYPhZPdXBz2hld42tHMm0yBWIs3vBYD5yFTwWaDJiJw1f2ElcBKfnBaC4G2fUyh5hvQ0HZJBv87QeEd5EkCEsvD9IDXQPLo2qzkFFafGceFaTgjASwaA9nlbmgGunPv26K8qxI8zmBzBNazAijkt9BV0QsloG6k3dOCKfu1s90wwJ0R1+odqu6uX9N1q8RMZ35Keu8YBEqCuydToHzjBybM9N7mmuy3Oke6/j80n7DR7YS16M3s8SoVUgwXhqM=
on:
tags: true
install:
- pip install -r requirements-dev.txt
- pip install .
- pip freeze