From 79bde7d5544e705e68b626d3e109ae5d69a83cf7 Mon Sep 17 00:00:00 2001
From: Dirk Sarpe <dirk.sarpe@idiv.de>
Date: Wed, 20 Mar 2019 13:55:50 +0100
Subject: [PATCH] make julia version configurable

---
 defaults/main.yml |  3 ++-
 tasks/main.yml    | 23 ++++++++++++++++++++++-
 vars/main.yml     |  2 +-
 3 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/defaults/main.yml b/defaults/main.yml
index 9825e4b..d41ee9c 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,5 +1,6 @@
 ---
 # defaults file for ansible-role-idiv-template
 # filename on server julia-1.0.3-linux-x86_64.tar.gz
-julia_version: 1.0.3
+julia_install: no
+julia_version: 'latest'
 julia_installation_dir: '/usr/local'
diff --git a/tasks/main.yml b/tasks/main.yml
index a62cdea..2eb5215 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -8,6 +8,27 @@
     group: root
     mode: 0755
 
+- name: get latest julia release info from github
+  uri:
+    url: 'https://api.github.com/repos/JuliaLang/julia/releases/latest'
+    return_content: yes
+  register: julia_github_response
+  when: julia_version == 'latest'
+
+- name: exract latest julia release from variable
+  set_fact:
+     julia_version: "{{ julia_github_response.json.tag_name | replace('v', '') }}"
+  when: julia_version == 'latest'
+
+- name: exract minor julia release from release variable
+  set_fact:
+     julia_version_minor: "{{ julia_version | regex_replace('^(\\d+\\.\\d+)\\.\\d+.*$', '\\1') }}"
+
+- name: if checkmode show julia_version
+  debug:
+    var: julia_version_minor
+  when: ansible_check_mode or ansible_diff_mode
+
 - name: download sha of julia archive
   get_url:
     url: '{{ julia_checksum_url }}'
@@ -21,7 +42,7 @@
 
 - name: download specified version of Julia
   get_url:
-    url: https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.3-linux-x86_64.tar.gz
+    url: 'https://julialang-s3.julialang.org/bin/linux/x64/{{ julia_version_minor }}/julia-{{ julia_version }}-linux-x86_64.tar.gz'
     dest: '{{ julia_download_dir }}'
     checksum: 'sha256:{{ julia_checksum.stdout_lines[0] }}'
 
diff --git a/vars/main.yml b/vars/main.yml
index d305ee0..52d4911 100644
--- a/vars/main.yml
+++ b/vars/main.yml
@@ -3,5 +3,5 @@
 julia_checksum_file: julia-{{ julia_version }}.sha256
 julia_checksum_url: https://julialang-s3.julialang.org/bin/checksums/{{ julia_checksum_file }}
 julia_tarball: julia-{{ julia_version}}-linux-x86_64.tar.gz
-julia_download_url: https://julialang-s3.julialang.org/bin/linux/x64/1.0/{{ julia_tarball }}
+julia_download_url: 'https://julialang-s3.julialang.org/bin/linux/x64/{{ julia_version_minor }}/{{ julia_tarball }}'
 julia_download_dir: '/var/cache/julia-dl'
-- 
GitLab