tahoe-lafs/.circleci/config.yml

87 lines
2.3 KiB
YAML
Raw Normal View History

# https://circleci.com/docs/2.0/
version: 2
workflows:
version: 2
ci:
jobs:
- "lint"
2018-06-08 19:52:29 +00:00
- "debian-8"
- "debian-9"
jobs:
lint:
docker:
- image: "circleci/python:2"
steps:
- "checkout"
- run:
name: "Static-ish code checks"
command: |
2018-06-08 18:47:00 +00:00
pip install --user tox
~/.local/bin/tox -e codechecks
2018-06-08 18:58:25 +00:00
debian-8: &DEBIAN
2018-06-08 18:58:25 +00:00
docker:
- image: "debian:8"
steps:
- run:
node: "Install Git"
command: |
apt-get --quiet update
apt-get --quiet --yes install git
2018-06-08 18:58:25 +00:00
- "checkout"
- run:
name: "Bootstrap test environment"
2018-06-13 15:31:56 +00:00
working_directory: "/tmp"
2018-06-08 18:58:25 +00:00
command: |
2018-06-13 15:31:56 +00:00
# Avoid the /nonexistent home directory in nobody's /etc/passwd
# entry.
usermod --home /tmp/nobody nobody
# Grant read access to nobody, the user which will eventually try
# to test this checkout.
mv /root/project /tmp/project
# Python build/install toolchain wants to write to the source
# checkout, too.
chown --recursive nobody:nogroup /tmp/project
2018-06-08 18:58:25 +00:00
apt-get --quiet --yes install \
2018-06-13 15:31:56 +00:00
sudo \
2018-06-08 18:58:25 +00:00
build-essential \
python2.7 \
python2.7-dev \
libffi-dev \
libssl-dev \
libyaml-dev \
virtualenv
2018-06-13 15:31:56 +00:00
# Set up the virtualenv as a non-root user so we can run the test
# suite as a non-root user. See below.
sudo -u nobody virtualenv --python python2.7 /tmp/tests
sudo -u nobody /tmp/tests/bin/pip install tox
2018-06-08 18:58:25 +00:00
- run:
name: "Run test suite"
command: |
2018-06-13 15:31:56 +00:00
# Run the test suite as a non-root user. This is the expected
# usage some small areas of the test suite assume non-root
# privileges (such as unreadable files being unreadable).
#
# Also run with /tmp as a workdir because the non-root user won't
# be able to create the tox working filesystem state in the source
# checkout because it is owned by root.
sudo -u nobody /tmp/tests/bin/tox -c /tmp/project/tox.ini --workdir /tmp -e py27
2018-06-08 19:52:29 +00:00
debian-9:
docker:
- image: "debian:9"
<<: *DEBIAN