diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a52682a..37b71d3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,4 +13,4 @@ jobs: run: >- docker run -t --rm -v "$PWD:/yadm:ro" - yadm/testbed:2020-07-08 + yadm/testbed:2020-12-21 diff --git a/Makefile b/Makefile index fe3310e..15539cc 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ PYTESTS = $(wildcard test/test_*.py) -IMAGE = yadm/testbed:2020-07-08 +IMAGE = yadm/testbed:2020-12-21 .PHONY: all all: @@ -146,16 +146,16 @@ testenv: @echo python3 -m venv --clear testenv testenv/bin/pip3 install --upgrade pip setuptools - testenv/bin/pip3 install --upgrade \ - flake8==3.7.8 \ - pylint==2.4.1 \ - pytest==5.1.3 \ - yamllint==1.17.0 \ - ; + testenv/bin/pip3 install --upgrade -r test/requirements.txt; @echo @echo 'To activate this test environment type:' @echo ' source testenv/bin/activate' +.PHONY: image +image: + @docker build -f test/Dockerfile . -t "$(IMAGE)" + + .PHONY: man man: @groff -man -Tascii ./yadm.1 | less diff --git a/docker-compose.yml b/docker-compose.yml index 60458d5..2247667 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,4 +4,4 @@ services: testbed: volumes: - .:/yadm:ro - image: yadm/testbed:2020-07-08 + image: yadm/testbed:2020-12-21 diff --git a/Dockerfile b/test/Dockerfile similarity index 73% rename from Dockerfile rename to test/Dockerfile index f686108..7a1e684 100644 --- a/Dockerfile +++ b/test/Dockerfile @@ -12,6 +12,9 @@ ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' # Convenience settings for the testbed's root account RUN echo 'set -o vi' >> /root/.bashrc +# Create a flag to identify when running inside the yadm testbed +RUN touch /.yadmtestbed + # Install prerequisites RUN \ apt-get update && \ @@ -24,25 +27,25 @@ RUN \ make \ man \ python3-pip \ - shellcheck=0.4.6-1 \ vim \ - ; -RUN pip3 install \ - envtpl \ - j2cli \ - flake8==3.7.8 \ - pylint==2.4.1 \ - pytest==5.1.3 \ - yamllint==1.17.0 \ - ; + && rm -rf /var/lib/apt/lists/*; + +ARG SC_VER=0.7.1 +RUN \ + curl -fLo - \ + https://github.com/koalaman/shellcheck/releases/download/v$SC_VER/shellcheck-v$SC_VER.linux.x86_64.tar.xz | \ + tar -xJv && \ + mv shellcheck-v$SC_VER/shellcheck /usr/bin && \ + rm -rf shellcheck-v$SC_VER + +COPY test/requirements.txt /tmp/requirements.txt +RUN pip3 install --upgrade pip setuptools +RUN pip3 install --upgrade -r /tmp/requirements.txt RUN \ curl https://raw.githubusercontent.com/jirutka/esh/v0.3.0/esh > /usr/local/bin/esh && \ chmod +x /usr/local/bin/esh -# Create a flag to identify when running inside the yadm testbed -RUN touch /.yadmtestbed - # /yadm will be the work directory for all tests # docker commands should mount the local yadm project as /yadm WORKDIR /yadm diff --git a/test/conftest.py b/test/conftest.py index 618e1ef..38228a1 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -25,25 +25,25 @@ def pytest_addoption(parser): @pytest.fixture(scope='session') def shellcheck_version(): """Version of shellcheck supported""" - return '0.4.6' + return '0.7.1' @pytest.fixture(scope='session') def pylint_version(): """Version of pylint supported""" - return '2.4.1' + return '2.6.0' @pytest.fixture(scope='session') def flake8_version(): """Version of flake8 supported""" - return '3.7.8' + return '3.8.4' @pytest.fixture(scope='session') def yamllint_version(): """Version of yamllint supported""" - return '1.17.0' + return '1.25.0' @pytest.fixture(scope='session') diff --git a/test/requirements.txt b/test/requirements.txt new file mode 100644 index 0000000..27ace6c --- /dev/null +++ b/test/requirements.txt @@ -0,0 +1,6 @@ +envtpl +flake8==3.8.4 +j2cli +pylint==2.6.0 +pytest==6.1.2 +yamllint==1.25.0