diff --git a/roles/dev/tasks/main.yml b/roles/dev/tasks/main.yml index 271b310..6130574 100644 --- a/roles/dev/tasks/main.yml +++ b/roles/dev/tasks/main.yml @@ -29,4 +29,6 @@ ansible.builtin.import_tasks: lang.yml when: "'lang' in tools" -# TODO: ocaml, truffle ... +- name: Truffle development environment + ansible.builtin.import_tasks: truffle.yml + when: "'truffle' in tools" diff --git a/roles/dev/tasks/truffle.yml b/roles/dev/tasks/truffle.yml new file mode 100644 index 0000000..313877e --- /dev/null +++ b/roles/dev/tasks/truffle.yml @@ -0,0 +1,47 @@ +- name: Create truffle dir + ansible.builtin.file: + path: "{{ ansible_env.HOME }}/truffle" + state: directory + mode: a + +# install tools +- name: Install openjdk + ansible.builtin.dnf5: + name: + - java-latest-openjdk + - maven + state: latest +- name: "Installing graalvm 23" + ansible.builtin.unarchive: + remote_src: true + src: "https://download.oracle.com/graalvm/23/latest/graalvm-jdk-23_linux-x64_bin.tar.gz" + dest: "{{ ansible_env.HOME }}/truffle/graalvm" + mode: a + keep_newer: true +- name: Select graalvm as java + community.general.alternatives: + name: java + path: "{{ ansible_env.HOME }}/truffle/graalvm-jdk-23.0.2+7.1/jre/bin/java" + +- name: Install Intellij IDEA + ansible.builtin.include_role: + name: gantsign.intellij + +# examples +- name: Clone simple language example + ansible.builtin.git: + repo: "https://github.com/graalvm/simplelanguage" + dest: "{{ ansible_env.HOME }}/truffle/simplelanguage" + version: master + +- name: Clone truffle usage tutorial + ansible.builtin.git: + repo: "https://github.com/skinny85/graalvm-truffle-tutorial" + dest: "{{ ansible_env.HOME }}/truffle/graalvm-truffle-tutorial" + version: master + +- name: Clone mumbler language example + ansible.builtin.git: + repo: "https://github.com/cesquivias/mumbler" + dest: "{{ ansible_env.HOME }}/truffle/mumbler" + version: master