Add tasks to build python
This commit is contained in:
parent
82c346506d
commit
092b78cce6
3 changed files with 78 additions and 2 deletions
|
|
@ -21,11 +21,14 @@
|
|||
- import_tasks: 'tasks/main.yml'
|
||||
- import_tasks: 'tasks/dotfiles.yml'
|
||||
- import_tasks: 'tasks/neovim.yml'
|
||||
- name: gather the package facts
|
||||
- name: gather package facts
|
||||
package_facts:
|
||||
manager: pacman
|
||||
- import_tasks: 'tasks/aur.yml'
|
||||
when: aur_packages|map(attribute='package_name')|list is not subset(ansible_facts.packages)
|
||||
- import_tasks: 'tasks/docker.yml'
|
||||
- name: setup python versions
|
||||
include_tasks: 'tasks/python.yml'
|
||||
loop: '{{ python_versions }}'
|
||||
vars_files:
|
||||
- 'vars.yml'
|
||||
|
|
|
|||
65
tasks/python.yml
Normal file
65
tasks/python.yml
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
- name: 'check for {{ item.binary }} binary'
|
||||
command: 'which {{ item.binary }}'
|
||||
changed_when: false
|
||||
failed_when: python_installed.rc not in [ 0, 1 ]
|
||||
register: python_installed
|
||||
|
||||
- name: 'check for {{ item.binary }} download'
|
||||
stat:
|
||||
path: '{{ python_build_dir }}/python-{{ item.version }}.tgz'
|
||||
register: python_download
|
||||
|
||||
- block:
|
||||
# TODO: verify for checksum
|
||||
- name: 'retrieve python {{ item.version }} source'
|
||||
become: true
|
||||
get_url:
|
||||
url: '{{ python_download_url }}/{{ item.version }}/Python-{{ item.version }}.tgz'
|
||||
dest: '{{ python_build_dir }}/python-{{ item.version }}.tgz'
|
||||
owner: '{{ ansible_user_id }}'
|
||||
group: '{{ ansible_user_id }}'
|
||||
when: not python_download.stat.exists
|
||||
|
||||
- name: 'extract python {{ item.version }} sources'
|
||||
become: true
|
||||
unarchive:
|
||||
src: '{{ python_build_dir }}/python-{{ item.version }}.tgz'
|
||||
dest: '{{ python_build_dir }}'
|
||||
include: 'Python-{{ item.version }}'
|
||||
|
||||
- name: rename source directory
|
||||
become: true
|
||||
ansible.builtin.command: 'mv {{ python_build_dir}}/Python-{{ item.version }} {{ python_build_dir }}/{{ item.path }}'
|
||||
|
||||
- name: set correct permissions
|
||||
become: true
|
||||
file:
|
||||
path: '{{ python_build_dir }}/{{ item.path }}'
|
||||
recurse: true
|
||||
owner: '{{ ansible_user_id }}'
|
||||
group: '{{ ansible_user_id }}'
|
||||
state: directory
|
||||
|
||||
- name: configure build
|
||||
ansible.builtin.command: 'sh ./configure --prefix={{ python_install_dir }}/{{ item.path }}'
|
||||
args:
|
||||
chdir: '{{ python_build_dir }}/{{ item.path }}/'
|
||||
|
||||
- name: make build
|
||||
ansible.builtin.command: 'make'
|
||||
args:
|
||||
chdir: '{{ python_build_dir }}/{{ item.path }}/'
|
||||
|
||||
- name: install build
|
||||
become: true
|
||||
ansible.builtin.command: 'make install'
|
||||
args:
|
||||
chdir: '{{ python_build_dir }}/{{ item.path }}/'
|
||||
|
||||
- name: 'create symlink for python {{ item.version }}'
|
||||
become: true
|
||||
file:
|
||||
src: '{{ python_install_dir }}/{{ item.path }}/bin/{{ item.binary }}'
|
||||
dest: '/usr/bin/{{ item.binary }}'
|
||||
state: link
|
||||
when: python_installed.rc not in [ 0 ]
|
||||
10
vars.yml
10
vars.yml
|
|
@ -2,7 +2,6 @@ ansible_connection: local
|
|||
ansible_python_interpreter: '/usr/bin/env python'
|
||||
|
||||
packages:
|
||||
- base-devel
|
||||
- python
|
||||
- git
|
||||
- vim
|
||||
|
|
@ -29,6 +28,8 @@ aur_packages:
|
|||
}
|
||||
|
||||
aur_build_dir: '/usr/local/src'
|
||||
python_build_dir: '/usr/local/src'
|
||||
python_install_dir: '/opt'
|
||||
|
||||
xdg_config_dir: '{{ ansible_env.HOME }}/.config'
|
||||
xdg_data_dir: '{{ ansible_env.HOME }}/.local/share'
|
||||
|
|
@ -68,5 +69,12 @@ language_servers:
|
|||
- vscode-langservers-extracted
|
||||
- typescript-language-server
|
||||
|
||||
python_download_url: 'https://www.python.org/ftp/python'
|
||||
python_versions:
|
||||
- { version: 3.9.14, path: 'python3.9', binary: 'python3.9' }
|
||||
- { version: 3.8.14, path: 'python3.8', binary: 'python3.8' }
|
||||
- { version: 3.7.14, path: 'python3.7', binary: 'python3.7' }
|
||||
- { version: 3.6.15, path: 'python3.6', binary: 'python3.6' }
|
||||
|
||||
gitlab_domain: 'git.fudiggity.nl'
|
||||
gitlab_host_key: 'git.fudiggity.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICNmvcxza79T7JZMkifmquwXH/kMUqDnKs9Oob+JrRvn'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue