diff --git a/.ansible-lint b/.ansible-lint index c3fbd80..7e0172a 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -2,4 +2,3 @@ warn_list: - role-name - name[casing] - - '306' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7c00f3c..5e5c0cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,9 @@ jobs: python-version: '3.x' - name: Install test dependencies - run: pip install ansible-lint[community,yamllint] + run: | + pip install ansible-lint + ansible-galaxy install -r requirements.yml - name: Lint code run: | @@ -43,11 +45,8 @@ jobs: matrix: include: - distro: debian8 - ansible-version: '<2.10' - distro: debian9 - distro: debian10 - - distro: ubuntu1604 - ansible-version: '>=2.9, <2.10' - distro: ubuntu1604 ansible-version: '>=2.10, <2.11' - distro: ubuntu1604 diff --git a/Dockerfile b/Dockerfile index b179278..6ebe0c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,20 @@ -FROM ubuntu:16.04 +FROM ubuntu:18.04 MAINTAINER Mischa ter Smitten +ENV LANG C.UTF-8 +ENV LC_ALL C.UTF-8 + # python RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y python-minimal python-dev curl && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y python3-minimal python3-dev curl && \ apt-get clean -RUN curl -sL https://bootstrap.pypa.io/pip/2.7/get-pip.py | python - +RUN curl -sL https://bootstrap.pypa.io/pip/3.6/get-pip.py | python3 - RUN rm -rf $HOME/.cache # ansible -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y gcc libffi-dev libssl-dev && \ +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python3-apt && \ apt-get clean -RUN pip install ansible==2.9.15 +RUN pip3 install ansible==2.10.7 RUN rm -rf $HOME/.cache # provision diff --git a/meta/main.yml b/meta/main.yml index eba702d..53f1303 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,13 +1,12 @@ # meta file --- galaxy_info: - namespace: oefenweb + author: oefenweb role_name: gnu_parallel - author: Mischa ter Smitten company: Oefenweb.nl B.V. description: Set up the latest version of GNU Parallel in Debian-like systems license: MIT - min_ansible_version: 2.9.0 + min_ansible_version: 2.10.0 platforms: - name: Ubuntu versions: diff --git a/molecule/default/collections.yml b/molecule/default/collections.yml new file mode 100644 index 0000000..c3d7e2a --- /dev/null +++ b/molecule/default/collections.yml @@ -0,0 +1,6 @@ +--- +collections: + - name: community.docker + version: '>=1.2.0,<2' + - name: community.general + version: '>=2,<3' diff --git a/requirements.yml b/requirements.yml new file mode 100644 index 0000000..3d5f1cd --- /dev/null +++ b/requirements.yml @@ -0,0 +1,3 @@ +# requirements file +--- +collections: [] diff --git a/tasks/main.yml b/tasks/main.yml index 66b35db..3338115 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,7 +1,7 @@ # tasks file --- - name: install dependencies - apt: + ansible.builtin.apt: name: "{{ gnu_parallel_dependencies }}" state: "{{ apt_install_state | default('latest') }}" update_cache: true @@ -13,7 +13,7 @@ - gnu-parallel-install-dependencies - name: remove (distro version) - apt: + ansible.builtin.apt: name: parallel state: absent purge: true @@ -25,7 +25,7 @@ - gnu-parallel-remove-distro - name: create (download) directory - file: + ansible.builtin.file: path: "{{ gnu_parallel_download_path }}" state: directory owner: root @@ -38,7 +38,7 @@ - gnu-parallel-install-download - name: download (latest) - get_url: + ansible.builtin.get_url: url: "{{ gnu_parallel_download_url }}" dest: "{{ gnu_parallel_download_path }}/{{ gnu_parallel_download_url | basename }}" owner: root @@ -52,7 +52,7 @@ - gnu-parallel-install-download - name: create (build) directory - file: + ansible.builtin.file: path: "{{ gnu_parallel_build_path }}" state: directory owner: root @@ -64,8 +64,8 @@ - gnu-parallel-install - gnu-parallel-install-build -- name: version check - shell: > +- name: version check # noqa risky-shell-pipe + ansible.builtin.shell: > tar -jtf {{ gnu_parallel_download_path }}/{{ gnu_parallel_download_url | basename }} | head -n 1 args: warn: false @@ -78,7 +78,7 @@ - gnu-parallel-install-build - name: extract - unarchive: + ansible.builtin.unarchive: src: "{{ gnu_parallel_download_path }}/{{ gnu_parallel_download_url | basename }}" dest: "{{ gnu_parallel_build_path }}" creates: "{{ gnu_parallel_build_path }}/{{ _version_check.stdout }}" @@ -90,41 +90,44 @@ - gnu-parallel-install - gnu-parallel-install-build -- block: +- name: install # noqa no-handler + when: _unarchive is changed + tags: + - configuration + - gnu-parallel + - gnu-parallel-install + - gnu-parallel-install-build + block: - name: configure - command: > + ansible.builtin.command: > ./configure args: chdir: "{{ gnu_parallel_build_path }}/{{ _version_check.stdout }}" + changed_when: true tags: - gnu-parallel-install-build-configure - name: make - command: > + ansible.builtin.command: > make -j{{ ansible_processor_cores + 1 }} args: chdir: "{{ gnu_parallel_build_path }}/{{ _version_check.stdout }}" + changed_when: true tags: - gnu-parallel-install-build-make - name: make install - command: > + ansible.builtin.command: > make install args: chdir: "{{ gnu_parallel_build_path }}/{{ _version_check.stdout }}" + changed_when: true tags: - gnu-parallel-install-build-make-install - when: _unarchive is changed - tags: - - configuration - - gnu-parallel - - gnu-parallel-install - - gnu-parallel-install-build - - name: silence citation notice - copy: + ansible.builtin.copy: src: root/.parallel dest: "{{ ansible_env.HOME }}/" owner: "{{ ansible_env.USER }}" @@ -136,7 +139,7 @@ - gnu-parallel-silence-citation-notice - name: verify - command: > + ansible.builtin.command: > parallel --version changed_when: false tags: