--- - name: get latest stable github release uri: url: https://api.github.com/repos/llvm/llvm-project/releases/latest register: llvm_latest - set_fact: llvm_major_version: '{{llvm_latest.json.tag_name[8:llvm_latest.json.tag_name.find(".")]}}' - set_fact: llvm_apt_repo_url: 'http://apt.llvm.org/{{ansible_distribution_release}}/' llvm_apt_category: 'llvm-toolchain-{{ansible_distribution_release}}-{{llvm_major_version}}' - name: add upstream deb repository become: true apt_repository: repo: 'deb {{llvm_apt_repo_url}} {{llvm_apt_category}} main' state: present filename: llvm update_cache: false - name: add upstream deb-src repository become: true apt_repository: repo: 'deb-src {{llvm_apt_repo_url}} {{llvm_apt_category}} main' state: present filename: llvm update_cache: false - name: add apt repository key become: true apt_key: url: https://apt.llvm.org/llvm-snapshot.gpg.key id: 6084F3CF814B57C1CF12EFD515CF4D18AF4F7421 state: present - name: update apt cache become: true apt: update_cache: true - name: install apt packages become: true apt: name: - clang-{{llvm_major_version}} - clang-format-{{llvm_major_version}} - clang-tidy-{{llvm_major_version}} - clang-tools-{{llvm_major_version}} - clangd-{{llvm_major_version}} - llvm-{{llvm_major_version}} state: latest install_recommends: true - name: update alternatives become: true alternatives: link: '/usr/bin/{{item}}' name: '{{item}}' path: '/usr/bin/{{item}}-{{llvm_major_version}}' priority: '{{llvm_major_version}}0' with_items: - clang-format - clangd