-
Notifications
You must be signed in to change notification settings - Fork 3
/
main.yml
66 lines (61 loc) · 2.06 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
###
# Clone and deploy a project repository
#
# This module clones and deploys a project repository to clone_root, which
# should be specified in the group_vars for a particular project.
# It provides repo_info and ver, which are both used to produce the folder
# directory.
#
###
- name: Clone and deploy a project repository
block:
- name: Ensure deploy user has access to install root
tags:
- setup
- never
become: true
file:
dest: "{{ install_root }}"
owner: "{{ deploy_user }}"
group: "{{ deploy_user }}"
state: directory
recurse: no # was yes and was super slow... surely not needed anymore?
# only set owner when deploy user is defined
# (i.e. on PUL vms, where deploy user is different than remote user)
- name: Clone project repository and checkout the correct git reference
become: true
become_user: "{{ deploy_user }}"
git:
repo: "{{ repo_url }}/"
dest: "{{ clone_root }}/{{ repo }}"
version: "{{ gitref }}"
depth: "{{ 1 if git_shallow_clone else 0 }}"
# register repo_info for group_vars
register: repo_info
- name: Determine version of python app being deployed
ansible.builtin.import_tasks: python_app_version.yml
run_once: true
when:
- python_app is defined
- name: Create the deploy directory (to recursively create parent dirs if necessary)
become: true
tags:
- setup
- never
become_user: "{{ deploy_user }}"
file:
state: directory
dest: "{{ deploy }}"
# using the local git repository as source, do a shallow, single branch checkout
# for the deployed instance
- name: Create a shallow checkout of deploy branch to deploy directory
become: true
become_user: "{{ deploy_user }}"
git:
repo: "{{ clone_root }}/{{ repo }}"
dest: "{{ deploy }}/"
version: "{{ gitref }}"
single_branch: true
depth: 1
rescue:
- include_tasks: roles/create_deployment/tasks/fail.yml