From d9756702f6c95aff5fc52416d0deb746413a0ae8 Mon Sep 17 00:00:00 2001 From: Victor LABORIE Date: Mon, 8 Jan 2018 14:43:26 +0100 Subject: [PATCH] redmine: force xpath < 3.0.0 (for ruby 2.1 support) --- redmine/defaults/main.yml | 2 ++ redmine/files/Gemfile.local | 1 + redmine/tasks/main.yml | 21 ++++++++++++++++++++- redmine/tasks/plugins.yml | 28 ++++++++++++++++++++++++++++ redmine/tasks/themes.yml | 26 ++++++++++++++++++++++++++ 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 redmine/tasks/plugins.yml create mode 100644 redmine/tasks/themes.yml diff --git a/redmine/defaults/main.yml b/redmine/defaults/main.yml index c87d09d3..049e6551 100644 --- a/redmine/defaults/main.yml +++ b/redmine/defaults/main.yml @@ -6,3 +6,5 @@ puma_max_thread: 4 redmine_db_name: "{{ redmine_user }}" redmine_db_host: "localhost" redmine_db_username: "{{ redmine_user }}" +redmine_plugins: [] +redmine_themes: [] diff --git a/redmine/files/Gemfile.local b/redmine/files/Gemfile.local index 78486d1b..b0aa3f4d 100644 --- a/redmine/files/Gemfile.local +++ b/redmine/files/Gemfile.local @@ -1 +1,2 @@ gem "puma" +gem "xpath", "< 3.0.0" diff --git a/redmine/tasks/main.yml b/redmine/tasks/main.yml index f7ab97c4..5270a5aa 100644 --- a/redmine/tasks/main.yml +++ b/redmine/tasks/main.yml @@ -211,6 +211,18 @@ tags: - redmine +- name: Install Redmine plugins + include: plugins.yml + with_items: "{{ redmine_plugins }}" + tags: + - redmine + +- name: Install Redmine themes + include: themes.yml + with_items: "{{ redmine_themes }}" + tags: + - redmine + - name: Update local gems with bundle bundler: state: present @@ -218,7 +230,7 @@ gem_path: "/home/{{ redmine_user }}/.gems" user_install: yes become_user: "{{ redmine_user }}" - when: redmine_git_task.changed or redmine_local_gemfile_task.changed + when: redmine_git_task.changed or redmine_local_gemfile_task.changed or redmine_plugin_install.changed - name: Migrate database with rake shell: bundle exec rake -qf ~/www/Rakefile db:migrate @@ -235,6 +247,13 @@ become_method: sudo become_flags: '-iu {{ redmine_user }}' +- name: Migrate plugins + shell: bundle exec rake -qf ~/www/Rakefile redmine:plugins:migrate + become_user: "{{ redmine_user }}" + become_method: sudo + become_flags: '-iu {{ redmine_user }}' + when: redmine_plugin_install.changed + - name: Generate secret token shell: bundle exec rake -qf ~/www/Rakefile generate_secret_token args: diff --git a/redmine/tasks/plugins.yml b/redmine/tasks/plugins.yml new file mode 100644 index 00000000..aacb2a27 --- /dev/null +++ b/redmine/tasks/plugins.yml @@ -0,0 +1,28 @@ +--- +- name: Copy/Update plugin from archive + unarchive: + src: "{{ item.zip }}" + dest: "/home/{{ redmine_user }}/www/plugins/" + remote_src: yes + owner: "{{ redmine_user }}" + group: "{{ redmine_user }}" + mode: "0750" + register: redmine_plugin_install + when: item.zip is defined + +- name: Copy/Update plugin from git repository + git: + repo: "{{ item.git }}" + dest: "/home/{{ redmine_user }}/www/plugins/{{ item.git | basename | splitext | first }}" + version: "{{ item.tree | default('master') }}" + register: redmine_plugin_install + when: item.git is defined + +- name: Fix rights on plugin dir + file: + path: "/home/{{ redmine_user }}/www/plugins/{{ item.git | basename | splitext | first }}" + owner: "{{ redmine_user }}" + group: "{{ redmine_user }}" + mode: "u=rwX,g=rX,o=" + recurse: True + when: item.git is defined diff --git a/redmine/tasks/themes.yml b/redmine/tasks/themes.yml new file mode 100644 index 00000000..ea5046de --- /dev/null +++ b/redmine/tasks/themes.yml @@ -0,0 +1,26 @@ +--- +- name: Copy/Update theme from archive + unarchive: + src: "{{ item.zip }}" + dest: "/home/{{ redmine_user }}/www/public/themes/" + remote_src: yes + owner: "{{ redmine_user }}" + group: "{{ redmine_user }}" + mode: "0750" + when: item.zip is defined + +- name: Copy/Update theme from git repository + git: + repo: "{{ item.git }}" + dest: "/home/{{ redmine_user }}/www/public/themes/{{ item.git | basename | splitext | first }}" + version: "{{ item.tree | default('master') }}" + when: item.git is defined + +- name: Fix rights on theme dir + file: + path: "/home/{{ redmine_user }}/www/public/themes/{{ item.git | basename | splitext | first }}" + owner: "{{ redmine_user }}" + group: "{{ redmine_user }}" + mode: "0750" + recurse: True + when: item.git is defined