Skip to content

TravisCI: ansible-lint fails to install on prod branch #1148

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
php-coder opened this issue Oct 26, 2019 · 5 comments
Closed

TravisCI: ansible-lint fails to install on prod branch #1148

php-coder opened this issue Oct 26, 2019 · 5 comments

Comments

@php-coder
Copy link
Owner

php-coder commented Oct 26, 2019

Regression after #479 and looks similar to #1020 but this time installation of the old version of Ansible blocks installation on ansible-lint:

/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown. warnings.warn(warning, RequestsDependencyWarning) DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support Collecting html5validator Downloading https://files.pythonhosted.org/packages/89/76/8ca74c49451d4ea7e8342580e7a1c0a2c07fc667b53631c8e1ae2a7ea237/html5validator-0.3.1.tar.gz (25.2MB) Collecting robotframework-lint Downloading https://files.pythonhosted.org/packages/ec/c8/e1db19ec1d782a5c487d8d9d07166f6e74d5f43b8f58eae36de380076377/robotframework-lint-1.0.tar.gz Collecting robotframework (from robotframework-lint) Downloading https://files.pythonhosted.org/packages/22/0f/1b9ffa0c4e59789b50e6034866e823b7d4a5c7eaedad7bfd0bba42f2aa9d/robotframework-3.1.2-py2.py3-none-any.whl (602kB) Building wheels for collected packages: html5validator, robotframework-lint Building wheel for html5validator (setup.py): started Building wheel for html5validator (setup.py): finished with status 'done' Created wheel for html5validator: filename=html5validator-0.3.1-cp27-none-any.whl size=25219425 sha256=153902a2cc22e2205defa7ce95816e4a8a023e4c1d17576e8e633c4a76a03887 Stored in directory: /home/travis/.cache/pip/wheels/3c/24/d7/4c6cb6631da71bf046a8a8d2f2d12e126729d69651037a589e Building wheel for robotframework-lint (setup.py): started Building wheel for robotframework-lint (setup.py): finished with status 'done' Created wheel for robotframework-lint: filename=robotframework_lint-1.0-cp27-none-any.whl size=27749 sha256=c1c1a98ca4884f5844f8136ceaf2d2ee8eb1195672bf54c96e4908739b0dc658 Stored in directory: /home/travis/.cache/pip/wheels/ec/1d/0a/eef6209d04a6ac82e91a9d7a0091da00f398104466c0327386 Successfully built html5validator robotframework-lint Installing collected packages: html5validator, robotframework, robotframework-lint Successfully installed html5validator-0.3.1 robotframework-3.1.2 robotframework-lint-1.0 WARNING: You are using pip version 19.2.1, however version 19.3.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. /usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown. warnings.warn(warning, RequestsDependencyWarning) DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support Collecting ansible==2.1.1.0 Downloading https://files.pythonhosted.org/packages/26/7c/4c717d39afac30bc324744a35fda077c969d3881daf71d396969958e01b7/ansible-2.1.1.0.tar.gz (1.9MB) Collecting paramiko (from ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/4b/80/74dace9e48b0ef923633dfb5e48798f58a168e4734bca8ecfaf839ba051a/paramiko-2.6.0-py2.py3-none-any.whl (199kB) Collecting jinja2 (from ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/65/e0/eb35e762802015cab1ccee04e8a277b03f1d8e53da3ec3106882ec42558b/Jinja2-2.10.3-py2.py3-none-any.whl (125kB) Requirement already satisfied: PyYAML in /usr/lib/python2.7/dist-packages (from ansible==2.1.1.0) (3.11) Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages (from ansible==2.1.1.0) (41.0.1) Collecting pycrypto>=2.6 (from ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz (446kB) Collecting bcrypt>=3.1.3 (from paramiko->ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/ad/36/9a0227d048e98409f012570f7bef8a8c2373b9c9c5dfbf82963cbae05ede/bcrypt-3.1.7-cp27-cp27mu-manylinux1_x86_64.whl (59kB) Collecting pynacl>=1.0.1 (from paramiko->ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/b3/25/e605574f24948a8a53b497744e93f061eb1dbe7c44b6465fc1c172d591aa/PyNaCl-1.3.0-cp27-cp27mu-manylinux1_x86_64.whl (762kB) Collecting cryptography>=2.5 (from paramiko->ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/c8/52/ad7f2cbe3b6e9340526dc401b38bb67c06160449446e15b0bf5f947fa168/cryptography-2.8-cp27-cp27mu-manylinux2010_x86_64.whl (2.3MB) Collecting MarkupSafe>=0.23 (from jinja2->ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/fb/40/f3adb7cf24a8012813c5edb20329eb22d5d8e2a0ecf73d21d6b85865da11/MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl Requirement already satisfied: six>=1.4.1 in /usr/lib/python2.7/dist-packages (from bcrypt>=3.1.3->paramiko->ansible==2.1.1.0) (1.10.0) Collecting cffi>=1.1 (from bcrypt>=3.1.3->paramiko->ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/bf/16/9d79400159c95b2f2d896ad22f3dd43898214eba1acbbd4439d29eee6e1e/cffi-1.13.1-cp27-cp27mu-manylinux1_x86_64.whl (379kB) Requirement already satisfied: enum34; python_version < "3" in /usr/lib/python2.7/dist-packages (from cryptography>=2.5->paramiko->ansible==2.1.1.0) (1.1.2) Requirement already satisfied: ipaddress; python_version < "3" in /usr/lib/python2.7/dist-packages (from cryptography>=2.5->paramiko->ansible==2.1.1.0) (1.0.16) Collecting pycparser (from cffi>=1.1->bcrypt>=3.1.3->paramiko->ansible==2.1.1.0) Downloading https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz (158kB) Building wheels for collected packages: ansible, pycrypto, pycparser Building wheel for ansible (setup.py): started Building wheel for ansible (setup.py): finished with status 'done' Created wheel for ansible: filename=ansible-2.1.1.0-cp27-none-any.whl size=2656583 sha256=960d9b0d0af2b98062e2b4d58f6215e493a8260e15b83525f5dabf9698284474 Stored in directory: /home/travis/.cache/pip/wheels/31/d9/d0/79e339e96062f5042d2d30b6cbf6a567e27213bed4f96b3f38 Building wheel for pycrypto (setup.py): started Building wheel for pycrypto (setup.py): finished with status 'done' Created wheel for pycrypto: filename=pycrypto-2.6.1-cp27-cp27mu-linux_x86_64.whl size=532901 sha256=280b417afc33a65b7f88c14a48402ea6f97a086e1de0d58a4d482a392717f3cf Stored in directory: /home/travis/.cache/pip/wheels/27/02/5e/77a69d0c16bb63c6ed32f5386f33a2809c94bd5414a2f6c196 Building wheel for pycparser (setup.py): started Building wheel for pycparser (setup.py): finished with status 'done' Created wheel for pycparser: filename=pycparser-2.19-py2.py3-none-any.whl size=111027 sha256=6ff1d4b60031c0f8a7957df8883dde98936d4f64c296cae21f0876406fb03173 Stored in directory: /home/travis/.cache/pip/wheels/f2/9a/90/de94f8556265ddc9d9c8b271b0f63e57b26fb1d67a45564511 Successfully built ansible pycrypto pycparser 8Installing collected packages: pycparser, cffi, bcrypt, pynacl, cryptography, paramiko, MarkupSafe, jinja2, pycrypto, ansible Successfully installed MarkupSafe-1.1.1 ansible-2.1.1.0 bcrypt-3.1.7 cffi-1.13.1 cryptography-2.8 jinja2-2.10.3 paramiko-2.6.0 pycparser-2.19 pycrypto-2.6.1 pynacl-1.3.0 WARNING: You are using pip version 19.2.1, however version 19.3.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Traceback (most recent call last): File "/usr/local/bin/pip", line 6, in from pip._internal import main File "/usr/local/lib/python2.7/dist-packages/pip/_internal/__init__.py", line 40, in from pip._internal.cli.autocompletion import autocomplete File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/autocompletion.py", line 8, in from pip._internal.cli.main_parser import create_main_parser File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/main_parser.py", line 11, in from pip._internal.commands import ( File "/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/__init__.py", line 6, in from pip._internal.commands.completion import CompletionCommand File "/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/completion.py", line 6, in from pip._internal.cli.base_command import Command File "/usr/local/lib/python2.7/dist-packages/pip/_internal/cli/base_command.py", line 21, in from pip._internal.download import PipSession File "/usr/local/lib/python2.7/dist-packages/pip/_internal/download.py", line 14, in from pip._vendor import requests, urllib3 File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/__init__.py", line 97, in from pip._vendor.urllib3.contrib import pyopenssl File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/urllib3/contrib/pyopenssl.py", line 46, in import OpenSSL.SSL File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in from OpenSSL import rand, crypto, SSL File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 118, in SSL_ST_INIT = _lib.SSL_ST_INIT AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

...
=====> Run Ansible Lint

./src/main/scripts/ci/check-build-and-verify.sh: line 225: ansible-lint: command not found

Seen here: https://travis-ci.org/php-coder/mystamps/jobs/603218272

@asm0dey JFYI

@php-coder
Copy link
Owner Author

There is a high chance that this will be fixed by #1142

@php-coder
Copy link
Owner Author

Installing them together in a single command seems work.

php-coder added a commit that referenced this issue Oct 26, 2019
@php-coder
Copy link
Owner Author

I've updated Travis config to fail fast, right after when we can't install ansible-lint. As documentation lies about that, I also submitted the issue: travis-ci/travis-ci#10480

@php-coder
Copy link
Owner Author

Takeaways:

  • as the order and versions of dependencies might lead to different results, for stable builds it's better to install all dependencies always. This especially important when we don't deploy every commit. We can follow the path of installation only needed dependencies for a particular build configuration but in this case we need to have Continuous Delivery (CD) to identify issues earlier.
  • it was possible to prevent this regression but as I wasn't persistent and let this happen: Adds support for ansible-lint #1129 (comment) Next time, I'll try to ensure that all the questions got the answers.

Regarding CD: I don't see a point to deploy on every commit but we can deploy more often to ensure that this process works. For example, we can deploy every week. I think there can be a bot for automate creation of pull requests from master to prod once per week. Perhaps, https://github.com/wei/pull can do that.

@php-coder
Copy link
Owner Author

I think there can be a bot for automate creation of pull requests from master to prod once per week. Perhaps, https://github.com/wei/pull can do that.

No, it can't: wei/pull#166

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant