diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 40301cd..98fc28c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,14 @@ msvsphere.ci Release Notes .. contents:: Topics +v0.1.1 +====== + +New Roles +--------- + +- msvsphere.ci.koji_tools - A role that installs koji-tools. + v0.1.0 ====== diff --git a/README.md b/README.md index f5caaf5..95f8120 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ The MSVSphere OS CI/CD collection. ## Roles +* [koji_tools](roles/koji_tools/README.md) * [postgresql_server](roles/postgresql_server/README.md) ## Documentation diff --git a/changelogs/.plugin-cache.yaml b/changelogs/.plugin-cache.yaml index 0b9486a..227b19f 100644 --- a/changelogs/.plugin-cache.yaml +++ b/changelogs/.plugin-cache.yaml @@ -1,5 +1,9 @@ objects: role: + koji_tools: + description: A role that installs koji-tools. + name: koji_tools + version_added: 0.1.1 postgresql_server: description: A role that installs and configures a PostgreSQL server name: postgresql_server @@ -20,4 +24,4 @@ plugins: strategy: {} test: {} vars: {} -version: 0.1.0 +version: 0.1.1 diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index e240d74..aea76d5 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -11,3 +11,10 @@ releases: name: postgresql_server namespace: null release_date: '2023-12-12' + 0.1.1: + objects: + role: + - description: A role that installs koji-tools. + name: koji_tools + namespace: null + release_date: '2023-12-13' diff --git a/galaxy.yml b/galaxy.yml index 8698c1b..c37351e 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -1,6 +1,6 @@ namespace: msvsphere name: ci -version: 0.1.0 +version: 0.1.1 readme: README.md authors: - Eugene Zamriy diff --git a/molecule/koji_tools/converge.yml b/molecule/koji_tools/converge.yml new file mode 100644 index 0000000..eea507c --- /dev/null +++ b/molecule/koji_tools/converge.yml @@ -0,0 +1,11 @@ +--- +- name: Converge + hosts: all + gather_facts: true + become: true + + tasks: + - name: Test koji_tools role + ansible.builtin.include_role: + name: msvsphere.ci.koji_tools + rolespec_validate: true diff --git a/molecule/koji_tools/molecule.yml b/molecule/koji_tools/molecule.yml new file mode 100644 index 0000000..8b430e2 --- /dev/null +++ b/molecule/koji_tools/molecule.yml @@ -0,0 +1,9 @@ +--- +driver: + name: vagrant + +platforms: + - name: msvsphere-9 + box: msvsphere/9 + memory: 1024 + cpus: 1 diff --git a/molecule/koji_tools/verify.yml b/molecule/koji_tools/verify.yml new file mode 100644 index 0000000..e4eccc2 --- /dev/null +++ b/molecule/koji_tools/verify.yml @@ -0,0 +1,48 @@ +--- +- name: Verify + hosts: all + become: true + + vars: + repo_path: /usr/local/koji-tools + + tasks: + - include_tasks: ../resources/tests/common/tasks/package_installed.yml + vars: + package_name: "{{ item }}" + with_items: + - git + - python3-cryptography + + - name: Collect koji-tools repository directory stats + ansible.builtin.stat: + path: "{{ repo_path }}" + register: repo_path_stats + + - name: Verify koji-tools repository directory stats + ansible.builtin.assert: + that: | + repo_path_stats.stat.exists and + repo_path_stats.stat.mode == '0755' and + repo_path_stats.stat.pw_name == 'root' and + repo_path_stats.stat.gr_name == 'root' + + - name: Get koji-tools git commit hash + ansible.builtin.command: "git -C {{ repo_path }} log --format='%H' -n 1" + register: git_log + + - name: Verify koji-tools git commit hash + ansible.builtin.assert: + that: | + git_log.stdout == '2b8a094bb5d3dfbdcb768f9ffc02c1247ae99e38' + fail_msg: koji-tools git commit hash does not match expected 2b8a094bb5d3dfbdcb768f9ffc02c1247ae99e38 + success_msg: koji-tools git commit hash matches expected 2b8a094bb5d3dfbdcb768f9ffc02c1247ae99e38 + + - name: Execute koji-ssl-admin + ansible.builtin.command: "{{ (repo_path, 'src/bin/koji-ssl-admin' ) | path_join }} -h" + register: koji_ssl_admin_status + + - name: Check koji-ssl-admin exit code + ansible.builtin.assert: + that: | + koji_ssl_admin_status.rc == 0 diff --git a/roles/koji_tools/README.md b/roles/koji_tools/README.md new file mode 100644 index 0000000..1539f8b --- /dev/null +++ b/roles/koji_tools/README.md @@ -0,0 +1,17 @@ +# msvsphere.ci.koji_tools + +An Ansible role that installs [koji-tools](https://pagure.io/koji-tools). + +## Variables + +| Variable | Default value | Type | Description | Required | +| -------- | ------------- | ---- |----------- | -------- | +| koji_tools_git_ref | "2b8a094bb5d3dfbdcb768f9ffc02c1247ae99e38" | string | koji-tools git repository reference | no | + +## License + +MIT. + +## Authors + +* [Eugene Zamriy](mailto:ezamriy@msvsphere-os.ru) diff --git a/roles/koji_tools/defaults/main.yml b/roles/koji_tools/defaults/main.yml new file mode 100644 index 0000000..e29a3d1 --- /dev/null +++ b/roles/koji_tools/defaults/main.yml @@ -0,0 +1,2 @@ +--- +koji_tools_git_ref: '2b8a094bb5d3dfbdcb768f9ffc02c1247ae99e38' diff --git a/roles/koji_tools/meta/argument_specs.yml b/roles/koji_tools/meta/argument_specs.yml new file mode 100644 index 0000000..d90b88a --- /dev/null +++ b/roles/koji_tools/meta/argument_specs.yml @@ -0,0 +1,12 @@ +--- +argument_specs: + main: + short_description: A role that installs koji-tools. + author: Eugene Zamriy + version_added: '0.1.1' + options: + koji_tools_git_ref: + description: koji-tools git repository reference. + default: '2b8a094bb5d3dfbdcb768f9ffc02c1247ae99e38' + type: 'str' + required: false diff --git a/roles/koji_tools/meta/main.yml b/roles/koji_tools/meta/main.yml new file mode 100644 index 0000000..d287371 --- /dev/null +++ b/roles/koji_tools/meta/main.yml @@ -0,0 +1,15 @@ +--- +galaxy_info: + author: Eugene Zamriy + description: An Ansible role that installs koji-tools. + company: Softline PJSC + license: MIT + min_ansible_version: 2.13 + platforms: + - name: EL + versions: + - "9" + galaxy_tags: + - koji + +dependencies: [] diff --git a/roles/koji_tools/tasks/main.yml b/roles/koji_tools/tasks/main.yml new file mode 100644 index 0000000..4d6e65d --- /dev/null +++ b/roles/koji_tools/tasks/main.yml @@ -0,0 +1,13 @@ +--- +- name: Install dependencies + ansible.builtin.dnf: + name: + - git + - python3-cryptography + state: present + +- name: Clone koji-tools git repository + ansible.builtin.git: + repo: 'https://pagure.io/koji-tools.git' + dest: /usr/local/koji-tools + version: "{{ koji_tools_git_ref }}"