From 20583c1e77e332ee912da0704baba214dd036c5f Mon Sep 17 00:00:00 2001 From: Tobias Urdin Date: Thu, 27 Dec 2018 20:50:08 +0100 Subject: [PATCH] Add upload-puppetforge role Adds a new role that can be used to upload a built puppet module tarball to forge.puppet.com Change-Id: I16c4da93592dc92b84ff8ad9540c75c7d3b39a91 --- roles/upload-puppetforge/README.rst | 22 +++++++++++++++++++++ roles/upload-puppetforge/defaults/main.yaml | 3 +++ roles/upload-puppetforge/tasks/main.yaml | 21 ++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 roles/upload-puppetforge/README.rst create mode 100644 roles/upload-puppetforge/defaults/main.yaml create mode 100644 roles/upload-puppetforge/tasks/main.yaml diff --git a/roles/upload-puppetforge/README.rst b/roles/upload-puppetforge/README.rst new file mode 100644 index 000000000..5eae36a0e --- /dev/null +++ b/roles/upload-puppetforge/README.rst @@ -0,0 +1,22 @@ +Upload puppet module to Puppet Forge + +**Role Variables** + + .. zuul:rolevar:: puppet_module_dir + :default: {{ zuul.project.src_dir }} + + The folder where the puppet module code is that it can + switch folder to. + + .. zuul:rolevar:: blacksmith_forge_url + :default: https://forgeapi.puppetlabs.com + + The URL to the Puppet Forge API. + + .. zuul:rolevar:: blacksmith_forge_username + + Username to use to log in to Puppet Forge. + + .. zuul:rolevar:: blacksmith_forge_password + + Password to use to log in to Puppet Forge. diff --git a/roles/upload-puppetforge/defaults/main.yaml b/roles/upload-puppetforge/defaults/main.yaml new file mode 100644 index 000000000..c93ad6002 --- /dev/null +++ b/roles/upload-puppetforge/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +puppet_module_dir: "{{ zuul.project.src_dir }}" +blacksmith_forge_url: "https://forgeapi.puppetlabs.com" diff --git a/roles/upload-puppetforge/tasks/main.yaml b/roles/upload-puppetforge/tasks/main.yaml new file mode 100644 index 000000000..52fa288e9 --- /dev/null +++ b/roles/upload-puppetforge/tasks/main.yaml @@ -0,0 +1,21 @@ +- name: Install required gems + gem: + name: "{{ item }}" + with_items: + - rake + - puppetlabs_spec_helper + - puppet-blacksmith + +- name: Install new Rakefile + copy: + content: "require 'puppet_blacksmith/rake_tasks'" + dest: "{{ puppet_module_dir }}/Rakefile" + +- name: Publish puppet module + command: "rake module:push" + args: + chdir: "{{ puppet_module_dir }}" + environment: + BLACKSMITH_FORGE_URL: "{{ blacksmith_forge_url }}" + BLACKSMITH_FORGE_USERNAME: "{{ blacksmith_forge_username }}" + BLACKSMITH_FORGE_PASSWORD: "{{ blacksmith_forge_password }}"