From dfee2f675f2c43e589eb208a1cb9b39494a3cc22 Mon Sep 17 00:00:00 2001 From: Yevhenii Shapovalov Date: Tue, 12 Dec 2017 13:28:04 +0200 Subject: add tests --- tests/README.md | 3 + tests/binary.yml | 10 ++ tests/callback_plugins/log.py | 193 ++++++++++++++++++++++++++ tests/roles/binary/tasks/buildah.yml | 15 ++ tests/roles/binary/tasks/main.yml | 4 + tests/roles/binary/tasks/runc.yml | 16 +++ tests/roles/cli/tasks/add.yaml | 41 ++++++ tests/roles/cli/tasks/bud.yaml | 24 ++++ tests/roles/cli/tasks/cleanup.yaml | 4 + tests/roles/cli/tasks/config.yaml | 16 +++ tests/roles/cli/tasks/containers.yaml | 18 +++ tests/roles/cli/tasks/copy.yaml | 41 ++++++ tests/roles/cli/tasks/from.yaml | 12 ++ tests/roles/cli/tasks/main.yaml | 44 ++++++ tests/roles/cli/tasks/mount.yaml | 27 ++++ tests/roles/cli/tasks/prepare-containers.yaml | 6 + tests/roles/cli/tasks/push.yaml | 60 ++++++++ tests/roles/cli/tasks/tag.yaml | 43 ++++++ tests/roles/prepare-env/tasks/main.yml | 41 ++++++ tests/roles/tear-down/tasks/main.yml | 6 + tests/rpm.yml | 9 ++ tests/test_binary.sh | 1 + tests/test_rpm.sh | 1 + tests/tests.yml | 12 ++ 24 files changed, 647 insertions(+) create mode 100644 tests/README.md create mode 100644 tests/binary.yml create mode 100644 tests/callback_plugins/log.py create mode 100644 tests/roles/binary/tasks/buildah.yml create mode 100644 tests/roles/binary/tasks/main.yml create mode 100644 tests/roles/binary/tasks/runc.yml create mode 100644 tests/roles/cli/tasks/add.yaml create mode 100644 tests/roles/cli/tasks/bud.yaml create mode 100644 tests/roles/cli/tasks/cleanup.yaml create mode 100644 tests/roles/cli/tasks/config.yaml create mode 100644 tests/roles/cli/tasks/containers.yaml create mode 100644 tests/roles/cli/tasks/copy.yaml create mode 100644 tests/roles/cli/tasks/from.yaml create mode 100644 tests/roles/cli/tasks/main.yaml create mode 100644 tests/roles/cli/tasks/mount.yaml create mode 100644 tests/roles/cli/tasks/prepare-containers.yaml create mode 100644 tests/roles/cli/tasks/push.yaml create mode 100644 tests/roles/cli/tasks/tag.yaml create mode 100644 tests/roles/prepare-env/tasks/main.yml create mode 100644 tests/roles/tear-down/tasks/main.yml create mode 100644 tests/rpm.yml create mode 100755 tests/test_binary.sh create mode 100755 tests/test_rpm.sh create mode 100644 tests/tests.yml diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..3a997a6 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,3 @@ +Buildah - a tool which facilitates building OCI container images + +When executing the buildah bud testing, it will cost much time as it is building image in the background. diff --git a/tests/binary.yml b/tests/binary.yml new file mode 100644 index 0000000..1c7803d --- /dev/null +++ b/tests/binary.yml @@ -0,0 +1,10 @@ +--- +# test buildah +- hosts: all + become: true + tags: + - classic + roles: + - binary + - prepare-env + - cli diff --git a/tests/callback_plugins/log.py b/tests/callback_plugins/log.py new file mode 100644 index 0000000..f4f1ce9 --- /dev/null +++ b/tests/callback_plugins/log.py @@ -0,0 +1,193 @@ +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Inspired from: https://github.com/redhat-openstack/khaleesi/blob/master/plugins/callbacks/human_log.py +# Further improved support Ansible 2.0 + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +try: + from ansible.plugins.callback import CallbackBase + BASECLASS = CallbackBase +except ImportError: # < ansible 2.1 + BASECLASS = DEFAULT_MODULE.CallbackModule + +import os, sys +reload(sys) +sys.setdefaultencoding('utf-8') + +try: + import simplejson as json +except ImportError: + import json + +# Fields to reformat output for +FIELDS = ['cmd', 'command', 'start', 'end', 'delta', 'msg', 'stdout', + 'stderr', 'results', 'failed', 'reason'] + + +class CallbackModule(CallbackBase): + + """ + Ansible callback plugin for human-readable result logging + """ + CALLBACK_VERSION = 2.0 + CALLBACK_TYPE = 'notification' + CALLBACK_NAME = 'human_log' + CALLBACK_NEEDS_WHITELIST = False + + def __init__(self, *args, **kwargs): + # pylint: disable=non-parent-init-called + BASECLASS.__init__(self, *args, **kwargs) + self.artifacts = './artifacts' + self.result_file = os.path.join(self.artifacts, 'test.log') + if not os.path.exists(self.artifacts): + os.makedirs(self.artifacts) + with open(self.result_file, 'w'): pass + + def human_log(self, data, taskname, status): + if type(data) == dict: + with open('./artifacts/test.log', 'a') as f: + f.write("\n\n") + f.write("# TASK NAME: %s \n" % taskname) + f.write("# STATUS: %s \n\n" % status) + f.write("Outputs: \n\n") + for field in FIELDS: + no_log = data.get('_ansible_no_log', False) + if field in data.keys() and data[field] and no_log != True: + output = self._format_output(data[field]) + # The following two lines are a hack to make it work with UTF-8 characters + if type(output) != list: + output = output.encode('utf-8', 'replace') + #self._display.display("\n{0}:\n{1}".format(field, output.replace("\\n","\n")), log_only=False) + with open('./artifacts/test.log', 'a') as f: + f.write("{0}: {1}".format(field, output.replace("\\n","\n"))+"\n") + + + def _format_output(self, output): + # Strip unicode + if type(output) == unicode: + output = output.encode(sys.getdefaultencoding(), 'replace') + + # If output is a dict + if type(output) == dict: + return json.dumps(output, indent=2, sort_keys=True) + + # If output is a list of dicts + if type(output) == list and type(output[0]) == dict: + # This gets a little complicated because it potentially means + # nested results, usually because of with_items. + real_output = list() + for index, item in enumerate(output): + copy = item + if type(item) == dict: + for field in FIELDS: + if field in item.keys(): + copy[field] = self._format_output(item[field]) + real_output.append(copy) + return json.dumps(output, indent=2, sort_keys=True) + + # If output is a list of strings + if type(output) == list and type(output[0]) != dict: + return '\n'.join(output) + + # Otherwise it's a string, (or an int, float, etc.) just return it + return str(output) + + ####### V2 METHODS ###### + def v2_on_any(self, *args, **kwargs): + pass + + def v2_runner_on_failed(self, result, ignore_errors=False): + self.human_log(result._result, result._task.name, "fail") + + def v2_runner_on_ok(self, result): + self.human_log(result._result, result._task.name, "pass") + + def v2_runner_on_skipped(self, result): + pass + + def v2_runner_on_unreachable(self, result): + self.human_log(result._result, result._task.name, "unreachable") + + def v2_runner_on_no_hosts(self, task): + pass + + def v2_runner_on_async_poll(self, result): + self.human_log(result._result, result._task.name, "") + + def v2_runner_on_async_ok(self, host, result): + self.human_log(result._result, result._task.name, "pass") + + def v2_runner_on_async_failed(self, result): + self.human_log(result._result, result._task.name, "fail") + + def v2_playbook_on_start(self, playbook): + pass + + def v2_playbook_on_notify(self, result, handler): + pass + + def v2_playbook_on_no_hosts_matched(self): + pass + + def v2_playbook_on_no_hosts_remaining(self): + pass + + def v2_playbook_on_task_start(self, task, is_conditional): + pass + + def v2_playbook_on_vars_prompt(self, varname, private=True, prompt=None, + encrypt=None, confirm=False, salt_size=None, + salt=None, default=None): + pass + + def v2_playbook_on_setup(self): + pass + + def v2_playbook_on_import_for_host(self, result, imported_file): + pass + + def v2_playbook_on_not_import_for_host(self, result, missing_file): + pass + + def v2_playbook_on_play_start(self, play): + pass + + def v2_playbook_on_stats(self, stats): + pass + + def v2_on_file_diff(self, result): + pass + + def v2_playbook_on_item_ok(self, result): + pass + + def v2_playbook_on_item_failed(self, result): + pass + + def v2_playbook_on_item_skipped(self, result): + pass + + def v2_playbook_on_include(self, included_file): + pass + + def v2_playbook_item_on_ok(self, result): + pass + + def v2_playbook_item_on_failed(self, result): + pass + + def v2_playbook_item_on_skipped(self, result): + pass diff --git a/tests/roles/binary/tasks/buildah.yml b/tests/roles/binary/tasks/buildah.yml new file mode 100644 index 0000000..5122105 --- /dev/null +++ b/tests/roles/binary/tasks/buildah.yml @@ -0,0 +1,15 @@ +--- +- name: pull latest buildah source from github + git: + repo: https://github.com/projectatomic/buildah + dest: "{{ HOME }}/go/src/github.com/projectatomic/buildah" + +- name: make binary for buildah + command: make + args: + chdir: "{{ HOME }}/go/src/github.com/projectatomic/buildah" + +- name: install buildah to /usr/local/bin + command: make install + args: + chdir: "{{ HOME }}/go/src/github.com/projectatomic/buildah" diff --git a/tests/roles/binary/tasks/main.yml b/tests/roles/binary/tasks/main.yml new file mode 100644 index 0000000..771725d --- /dev/null +++ b/tests/roles/binary/tasks/main.yml @@ -0,0 +1,4 @@ +--- +- import_tasks: runc.yml + +- import_tasks: buildah.yml diff --git a/tests/roles/binary/tasks/runc.yml b/tests/roles/binary/tasks/runc.yml new file mode 100644 index 0000000..d64d5fb --- /dev/null +++ b/tests/roles/binary/tasks/runc.yml @@ -0,0 +1,16 @@ +--- +- name: pull latest runc source from github + git: + repo: https://github.com/opencontainers/runc + dest: "{{ HOME }}/go/src/github.com/opencontainers/runc" + +- name: building runc for buildah runtime + command: make + args: + chdir: "{{ HOME }}/go/src/github.com/opencontainers/runc" + +- name: copy runc to /usr/bin + copy: + remote_src: True + src: "{{ HOME }}/go/src/github.com/opencontainers/runc/runc" + dest: /usr/bin/runc diff --git a/tests/roles/cli/tasks/add.yaml b/tests/roles/cli/tasks/add.yaml new file mode 100644 index 0000000..0bd6498 --- /dev/null +++ b/tests/roles/cli/tasks/add.yaml @@ -0,0 +1,41 @@ +--- +- name: buildah add + command: buildah add nginxc /tmp/buildah/bud/Dockerfile + +- name: check buildah add + command: ls {{mount.stdout}}/Dockerfile + +- name: buildah add to destination + command: buildah add nginxc /tmp/buildah/bud/Dockerfile /home + +- name: check buildah add to + command: ls {{mount.stdout}}/home/Dockerfile + +- name: buildah add URL + command: buildah add nginxc https://github.com/projectatomic/buildah/raw/master/README.md + +- name: check buildah add URL + command: ls {{mount.stdout}}/README.md + +- name: buildah add URL to destination + command: buildah add nginxc https://github.com/projectatomic/buildah/raw/master/README.md /home + +- name: check buildah add URL to destination + command: ls {{mount.stdout}}/home/README.md + +- name: Download buildah README.md + get_url: + url: https://github.com/projectatomic/buildah/raw/master/README.md + dest: /tmp/buildah/ + +- name: buildah add dir + command: buildah add nginxc /tmp + +- name: check buildah add dir + command: ls {{mount.stdout}}/buildah/README.md + +- name: buildah add dir to destination + command: buildah add nginxc /tmp /home + +- name: check buildah add dir to destination + command: ls {{mount.stdout}}/home/buildah/README.md diff --git a/tests/roles/cli/tasks/bud.yaml b/tests/roles/cli/tasks/bud.yaml new file mode 100644 index 0000000..1f1c678 --- /dev/null +++ b/tests/roles/cli/tasks/bud.yaml @@ -0,0 +1,24 @@ +--- +- name: buildah bud localfile + command: buildah bud -t testing/nginx --pull /tmp/buildah/bud + +- name: check bud images with buildah images command + shell: buildah images | grep testing/nginx + +- name: buildah bud -f localfile + command: buildah bud -t testing/nginx2 -f /tmp/buildah/bud/Dockerfile . + +- name: buildah bud URL + command: buildah bud -t testing/nginx3 http://localhost/bud/Dockerfile.tar.gz + +- name: buildah build-using-dockerfile localfile + command: buildah build-using-dockerfile -t testing/nginx4 /tmp/buildah/bud + +- name: buildah build-using-dockerfile -f localfile + command: buildah build-using-dockerfile -t testing/nginx5 --file /tmp/buildah/bud/Dockerfile . + +- name: buildah build-using-dockerfile URL + command: buildah build-using-dockerfile --tag testing/nginx6 http://localhost/bud/Dockerfile.tar.gz + +- name: buildah rmi + command: buildah rmi testing/nginx{2..6} diff --git a/tests/roles/cli/tasks/cleanup.yaml b/tests/roles/cli/tasks/cleanup.yaml new file mode 100644 index 0000000..45f31d5 --- /dev/null +++ b/tests/roles/cli/tasks/cleanup.yaml @@ -0,0 +1,4 @@ +--- +- name: remove buildah containers after testing + command: buildah rm busybox nginxc nginxc-2 + ignore_errors: true diff --git a/tests/roles/cli/tasks/config.yaml b/tests/roles/cli/tasks/config.yaml new file mode 100644 index 0000000..91e8bc3 --- /dev/null +++ b/tests/roles/cli/tasks/config.yaml @@ -0,0 +1,16 @@ +--- +- name: buildah config workingdir + command: buildah config --workingdir /opt nginxc + +- name: get buildah config workingdir + command: buildah run nginxc "pwd" + register: checkworkingdir + failed_when: "'/opt' not in checkworkingdir.stdout" + +- name: buildah config env + command: buildah config --env foo=bar nginxc + +- name: get buildah config env + command: buildah run nginxc env + register: env + failed_when: "'foo=bar' not in env.stdout" diff --git a/tests/roles/cli/tasks/containers.yaml b/tests/roles/cli/tasks/containers.yaml new file mode 100644 index 0000000..fa9add6 --- /dev/null +++ b/tests/roles/cli/tasks/containers.yaml @@ -0,0 +1,18 @@ +--- +- name: buildah containers + shell: buildah containers | grep nginxc + +- name: buildah containers -q + shell: buildah containers -q | grep -v nginxc + +- name: buildah containers -n + shell: buildah containers -n | grep -v NAME + +- name: buildah containers --notruncate + command: buildah containers -- notruncate + +- name: buildah containers --all + command: buildah containers --all + +- name: buildah containers --json + command: buildah containers --json diff --git a/tests/roles/cli/tasks/copy.yaml b/tests/roles/cli/tasks/copy.yaml new file mode 100644 index 0000000..3f0d8c5 --- /dev/null +++ b/tests/roles/cli/tasks/copy.yaml @@ -0,0 +1,41 @@ +--- +- name: buildah copy + command: buildah copy nginxc-2 /tmp/buildah/bud/Dockerfile + +- name: check buildah copy + command: ls {{mount.stdout}}/Dockerfile + +- name: buildah copy to destination + command: buildah copy nginxc-2 /tmp/buildah/bud/Dockerfile /home + +- name: check buildah copy to + command: ls {{mount.stdout}}/home/Dockerfile + +- name: buildah copy URL + command: buildah copy nginxc-2 https://github.com/projectatomic/buildah/raw/master/README.md + +- name: check buildah copy URL + command: ls {{mount.stdout}}/README.md + +- name: buildah copy URL to destination + command: buildah copy nginxc-2 https://github.com/projectatomic/buildah/raw/master/README.md /home + +- name: check buildah copy URL to destination + command: ls {{mount.stdout}}/home/README.md + +- name: Download buildah README.md + get_url: + url: https://github.com/projectatomic/buildah/raw/master/README.md + dest: /tmp/buildah/ + +- name: buildah copy dir + command: buildah copy nginxc-2 /tmp/buildah + +- name: check buildah copy dir + command: ls {{mount.stdout}}/README.md + +- name: buildah copy dir to destination + command: buildah copy nginxc-2 /tmp /home + +- name: check buildah copy dir to destination + command: ls {{mount.stdout}}/home/buildah/README.md diff --git a/tests/roles/cli/tasks/from.yaml b/tests/roles/cli/tasks/from.yaml new file mode 100644 index 0000000..e694b10 --- /dev/null +++ b/tests/roles/cli/tasks/from.yaml @@ -0,0 +1,12 @@ +--- +- name: buildah from pull + command: buildah from --pull nginx + +- name: buildah from pull always + command: buildah from --pull-always nginx + +- name: buildah from with name + command: buildah from --name nginx nginx + +- name: clean from testings + command: buildah delete nginx nginx-working-container nginx-working-container-2 diff --git a/tests/roles/cli/tasks/main.yaml b/tests/roles/cli/tasks/main.yaml new file mode 100644 index 0000000..f709887 --- /dev/null +++ b/tests/roles/cli/tasks/main.yaml @@ -0,0 +1,44 @@ +--- +- block: + - name: prepare containers nginxc + import_tasks: prepare-containers.yaml + tags: + - nginxc + + - name: buildah containers + import_tasks: containers.yaml + tags: + - ctr + + - name: buildah from + import_tasks: from.yaml + tags: + - from + + - name: buildah mount + import_tasks: mount.yaml + tags: + - mount + + - name: buildah tag + import_tasks: tag.yaml + tags: + - tag + + - name: buildah config + import_tasks: config.yaml + tags: + - config + + - name: buildah push + import_tasks: push.yaml + tags: + - push + + - name: buildah build-using-dockerfile + import_tasks: bud.yaml + tags: + - bud + + always: + - import_tasks: cleanup.yaml diff --git a/tests/roles/cli/tasks/mount.yaml b/tests/roles/cli/tasks/mount.yaml new file mode 100644 index 0000000..09bd901 --- /dev/null +++ b/tests/roles/cli/tasks/mount.yaml @@ -0,0 +1,27 @@ +--- +- name: buildah mount container nginxc + command: buildah mount nginxc + register: mount + +- name: buildah mount without args will list all mounts + shell: buildah mount | grep storage + +- name: buildah add + import_tasks: add.yaml + tags: + - add + +- name: buildah umount + command: buildah umount nginxc + +- name: buildah mount --notruncate + command: buildah mount --notruncate nginxc-2 + register: mount + +- name: buildah copy + import_tasks: copy.yaml + tags: + - copy + +- name: buildah unmount + command: buildah unmount nginxc-2 diff --git a/tests/roles/cli/tasks/prepare-containers.yaml b/tests/roles/cli/tasks/prepare-containers.yaml new file mode 100644 index 0000000..1477e62 --- /dev/null +++ b/tests/roles/cli/tasks/prepare-containers.yaml @@ -0,0 +1,6 @@ +--- +- name: prepare container nginxc for later testing + command: buildah from --pull --name nginxc nginx + +- name: prepare container nginxc-2 for later testing + command: buildah from --name nginxc-2 nginx diff --git a/tests/roles/cli/tasks/push.yaml b/tests/roles/cli/tasks/push.yaml new file mode 100644 index 0000000..cc38b51 --- /dev/null +++ b/tests/roles/cli/tasks/push.yaml @@ -0,0 +1,60 @@ +--- +- name: pull busybox before push + command: buildah from --pull --name busybox busybox + +- name: buildah push image to containers-storage + command: buildah push docker.io/busybox:latest containers-storage:docker.io/busybox:latest + +- name: buildah push image to docker daemon + command: buildah push docker.io/busybox:latest docker-daemon:docker.io/buildah/busybox:latest + +- name: check buildah/busybox exist in docker daemon + command: docker images docker.io/buildah/busybox:latest + +- name: buildah push image to docker local registry + command: buildah push --tls-verify=false docker.io/busybox:latest docker://localhost:5000/buildah/busybox:latest + +- name: create /tmp/buildah/busybox + file: path=/tmp/buildah/docker state=directory + +- name: rm busybox.tar because docker archive does not support modify + file: path=/tmp/buildah/docker/busybox.tar state=absent + +- name: buildah push image to docker-archive + command: buildah push docker.io/busybox:latest docker-archive:/tmp/buildah/docker/busybox.tar:latest + +- name: check docker archive exist + file: path=/tmp/buildah/docker/busybox.tar state=file + +- name: create /tmp/buildah/dir + file: path=/tmp/buildah/dir state=directory + +- name: buildah push image to dir + command: buildah push docker.io/busybox:latest dir:/tmp/buildah/dir + +- name: create /tmp/buildah/oci + file: path=/tmp/buildah/oci state=directory + +- name: buildah push image to oci + command: buildah push docker.io/busybox:latest oci:/tmp/buildah/oci:latest + +- name: buildah push image to oci archive + command: buildah push docker.io/busybox:latest oci-archive:/tmp/buildah/oci/busybox.tar:latest + +- name: check oci archive exist + file: path=/tmp/buildah/oci/busybox.tar state=file + +- name: init default ostree repo + command: ostree --repo=/ostree/repo init + +- name: create /tmp/buildah/ostree/repo + file: path=/tmp/buildah/ostree/repo state=directory + +- name: init tmp ostree repo + command: ostree --repo=/tmp/buildah/ostree/repo init + +- name: buildah push image to ostree + command: buildah push docker.io/busybox:latest ostree:busybox:latest + +- name: buildah push image to non-default ostree repo + command: buildah push docker.io/busybox:latest ostree:busybox:latest@/tmp/buildah/ostree/repo diff --git a/tests/roles/cli/tasks/tag.yaml b/tests/roles/cli/tasks/tag.yaml new file mode 100644 index 0000000..32767ba --- /dev/null +++ b/tests/roles/cli/tasks/tag.yaml @@ -0,0 +1,43 @@ +--- +- name: buildah from --pull busybox + command: buildah from busybox + +- name: buildah tag by name + command: buildah tag busybox busybox1 + +- name: check busybox1 exists + shell: buildah images | grep busybox1 + +- name: get image id + command: buildah images -q busybox1 + register: busyboxID + +- name: buildah tag by ID + command: buildah tag {{busyboxID.stdout}} busybox2 + +- name: check busybox2 exists + shell: buildah images | grep busybox2 + +- name: buildah from tagged image + command: buildah from busybox1 + +- name: mount the container which using tagged image + command: buildah mount busybox1-working-container + +- name: buildah umount the container + command: buildah umount busybox1-working-container + +- name: buildah rm container busybox + command: buildah rm busybox-working-container + +- name: buildah rm container busybox1 + command: buildah rm busybox1-working-container + +- name: buildah rmi tagged image + command: buildah rmi busybox{1..2} + +- name: check image busybox is not deleted + shell: buildah images | grep busybox + +- name: buildah rmi image busybox + command: buildah rmi busybox diff --git a/tests/roles/prepare-env/tasks/main.yml b/tests/roles/prepare-env/tasks/main.yml new file mode 100644 index 0000000..bc46794 --- /dev/null +++ b/tests/roles/prepare-env/tasks/main.yml @@ -0,0 +1,41 @@ +--- +- name: install required packages for testings + package: + name: "{{ item }}" + state: latest + with_items: + - docker + - python-docker-py + - buildah + - docker-distribution + - ostree + - httpd + - libselinux-python + +- name: start docker daemon + systemd: state=started name=docker + +- name: create /ostree/repo + file: path=/ostree/repo state=directory + +- name: ensure docker-distribution service is running + systemd: state=started name=docker-distribution + +- name: creates directory buildah testing + file: path=/tmp/buildah/bud state=directory + +- name: download Dockerfile + get_url: + url: https://github.com/fedora-cloud/Fedora-Dockerfiles/raw/master/nginx/Dockerfile + dest: /tmp/buildah/bud/Dockerfile + +- name: creates a bud directory in /var/www/html + file: path=/var/www/html/bud state=directory + +- name: archive dockerfile into httpd directory + command: tar zcvf /var/www/html/bud/Dockerfile.tar.gz Dockerfile + args: + chdir: /tmp/buildah/bud + +- name: start httpd service + systemd: state=started name=httpd diff --git a/tests/roles/tear-down/tasks/main.yml b/tests/roles/tear-down/tasks/main.yml new file mode 100644 index 0000000..f54186d --- /dev/null +++ b/tests/roles/tear-down/tasks/main.yml @@ -0,0 +1,6 @@ +--- +- name: stop docker-distribution service + systemd: state=stopped name=docker-distribution + +- name: stop httpd service + systemd: state=stopped name=httpd diff --git a/tests/rpm.yml b/tests/rpm.yml new file mode 100644 index 0000000..27a9349 --- /dev/null +++ b/tests/rpm.yml @@ -0,0 +1,9 @@ +--- +# test buildah +- hosts: all + become: true + tags: + - classic + roles: + - prepare-env + - cli diff --git a/tests/test_binary.sh b/tests/test_binary.sh new file mode 100755 index 0000000..1290479 --- /dev/null +++ b/tests/test_binary.sh @@ -0,0 +1 @@ +ansible-playbook -i inventory binary.yml "$@" diff --git a/tests/test_rpm.sh b/tests/test_rpm.sh new file mode 100755 index 0000000..3634f61 --- /dev/null +++ b/tests/test_rpm.sh @@ -0,0 +1 @@ +ansible-playbook -i inventory buildah_rpm.yml "$@" diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..74f63e8 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,12 @@ +--- +# test buildah +- hosts: localhost + become: true + tags: + - classic + roles: + - prepare-env + - role: cli + tags: + - cli + - tear-down -- cgit