185 lines
4.3 KiB
YAML
185 lines
4.3 KiB
YAML
---
|
|
- name: Check that custom git variables are defined.
|
|
assert:
|
|
that:
|
|
- "gpg_key_name is defined"
|
|
- "gpg_key_name != ''"
|
|
- "git_name is defined"
|
|
- "git_name != ''"
|
|
- "git_email is defined"
|
|
- "git_email != ''"
|
|
msg: Please set your gpg_key_name, git_name and git_email in gitian.yml.
|
|
|
|
- name: Install Gitian dependencies.
|
|
apt:
|
|
name:
|
|
- bridge-utils
|
|
- curl
|
|
- debootstrap
|
|
- git-core
|
|
- gnupg2
|
|
- kpartx
|
|
- lintian
|
|
- lxc
|
|
- make
|
|
- python3-cheetah
|
|
- qemu-utils
|
|
- ruby
|
|
- sudo
|
|
state: present
|
|
update_cache: yes
|
|
|
|
- name: Install more recent version of apt-cacher-ng
|
|
apt:
|
|
name: apt-cacher-ng
|
|
state: latest
|
|
update_cache: yes
|
|
default_release: bullseye-backports
|
|
|
|
- name: Install ruamel.yaml
|
|
pip:
|
|
name: "ruamel.yaml>=0.15.0,<0.16.0"
|
|
|
|
- name: Set up the Gitian build user with sudo.
|
|
user:
|
|
name: "{{ gitian_user }}"
|
|
shell: /bin/bash
|
|
groups: sudo
|
|
state: present
|
|
|
|
- name: Install /etc/rc.local.
|
|
template:
|
|
src: rc.local
|
|
dest: /etc/rc.local
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
|
|
- name: Enable IP forwarding, etc.
|
|
sysctl:
|
|
name: "{{ item }}"
|
|
value: 1
|
|
sysctl_set: yes
|
|
state: present
|
|
reload: yes
|
|
with_items:
|
|
- net.ipv4.ip_forward
|
|
- kernel.unprivileged_userns_clone
|
|
|
|
- name: Enable cgroup clone_children.
|
|
command: "echo 1 > /sys/fs/cgroup/cpuset/cgroup.clone_children"
|
|
|
|
- name: Add cgroup fs for LXC.
|
|
lineinfile:
|
|
dest: /etc/fstab
|
|
regexp: '^cgroup'
|
|
line: 'cgroup /sys/fs/cgroup cgroup defaults 0 0'
|
|
state: present
|
|
|
|
- name: Install profile with environment variables.
|
|
template:
|
|
src: profile
|
|
dest: "/home/{{ gitian_user }}/.profile"
|
|
owner: "{{ gitian_user }}"
|
|
group: "{{ gitian_user }}"
|
|
mode: "0644"
|
|
|
|
- name: Install sudoers file for LXC.
|
|
template:
|
|
src: gitian-lxc
|
|
dest: /etc/sudoers.d/gitian-lxc
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
|
|
- name: Install lxc-net configuration.
|
|
template:
|
|
src: lxc-net
|
|
dest: /etc/default/lxc-net
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
|
|
- name: Clone git repository for Gitian builder.
|
|
git:
|
|
repo: "{{ gitian_builder_url }}"
|
|
dest: "/home/{{ gitian_user }}/gitian-builder"
|
|
version: "{{ gitian_builder_version }}"
|
|
force: yes
|
|
become_user: "{{ gitian_user }}"
|
|
|
|
- include_tasks: keys.yml
|
|
tags: keys
|
|
|
|
- name: Clone git repository for Zcash.
|
|
git:
|
|
repo: "{{ zcash_git_repo_url }}"
|
|
dest: "/home/{{ gitian_user }}/zcash"
|
|
version: "{{ zcash_version }}"
|
|
force: yes
|
|
become_user: "{{ gitian_user }}"
|
|
|
|
- name: Clone git repository for Gitian signatures.
|
|
git:
|
|
repo: "{{ zcash_gitian_sigs_repo }}"
|
|
dest: "/home/{{ gitian_user }}/gitian.sigs"
|
|
version: master
|
|
force: yes
|
|
become_user: "{{ gitian_user }}"
|
|
|
|
- name: Set Git username.
|
|
command: "git config --global user.name \"{{ git_name }}\""
|
|
become_user: "{{ gitian_user }}"
|
|
|
|
- name: Set Git email address.
|
|
command: "git config --global user.email '{{ git_email }}'"
|
|
become_user: "{{ gitian_user }}"
|
|
|
|
- name: Create bin directory under gitian_user home directory
|
|
file:
|
|
state: directory
|
|
dest: "/home/{{ gitian_user }}/bin"
|
|
mode: "0755"
|
|
|
|
- name: Copy explode_yaml_file.py
|
|
copy:
|
|
src: explode_yaml_file.py
|
|
dest: "/home/{{ gitian_user }}/bin/explode_yaml_file.py"
|
|
owner: "{{ gitian_user }}"
|
|
group: "{{ gitian_user }}"
|
|
mode: "0755"
|
|
|
|
- name: Copy Gitian build script.
|
|
template:
|
|
src: gitian-build.sh
|
|
dest: "/home/{{ gitian_user }}/gitian-build.sh"
|
|
owner: "{{ gitian_user }}"
|
|
group: "{{ gitian_user }}"
|
|
mode: "0755"
|
|
tags: script
|
|
|
|
- name: Copy Parallel Gitian build script.
|
|
template:
|
|
src: gitian-parallel-build.sh
|
|
dest: "/home/{{ gitian_user }}/gitian-parallel-build.sh"
|
|
owner: "{{ gitian_user }}"
|
|
group: "{{ gitian_user }}"
|
|
mode: "0755"
|
|
tags: script
|
|
|
|
- name: Clean the apt cache to free up space.
|
|
apt:
|
|
autoclean: yes
|
|
|
|
- include_tasks: gpg.yml
|
|
tags: gpg
|
|
when: gpg_key_id is defined and gpg_key_id != ''
|
|
|
|
- name: Display help message.
|
|
debug:
|
|
msg: >-
|
|
Finished bootstrapping the Gitian host VM!
|
|
To enter the environment, run `vagrant ssh zcash-build`
|
|
and then use `./gitian-build.sh` to kick off a build.
|
|
For parallelism, use `./gitian-parallel-build.sh`.
|