aboutsummaryrefslogtreecommitdiff
path: root/tasks/buildkite.yml
blob: ae0b39163828a76691d3b5717229a6f1ea329d02 (plain) (blame)
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
---
- name: Add Buildkite GPG apt Key
  ansible.builtin.get_url:
    url: "https://keys.openpgp.org/vks/v1/by-fingerprint/{{ buildkite_gpg_fingerprint }}"
    dest: /etc/apt/trusted.gpg.d/buildkite.asc

- name: Add Buildkite Repository
  apt_repository:
    repo: >-
      deb
      [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/buildkite.asc]
      https://apt.buildkite.com/buildkite-agent stable main
    filename: buildkite

- name: Install buildkite-agent
  apt:
    name:
      - buildkite-agent

- name: Add buildkite-agent default configuration
  ansible.builtin.lineinfile:
    create: true
    path: /etc/buildkite-agent/buildkite-agent.cfg
    regexp: "^{{ item.key }}="
    line: |
      {{ item.key }}={% if item.quote | default(true) %}"{{ item.value }}"{% else %}{{ item.value }}{% endif %}
    owner: "buildkite-agent"
    group: "buildkite-agent"
  loop: "{{ buildkite_default_config }}"
  notify:
    - restart buildkite-agent

- name: Add buildkite-agent user configuration
  ansible.builtin.lineinfile:
    path: /etc/buildkite-agent/buildkite-agent.cfg
    regexp: "^{{ item.key }}="
    line: |
      {{ item.key }}={% if item.quote | default(true) %}"{{ item.value }}"{% else %}{{ item.value }}{% endif %}
    owner: "buildkite-agent"
    group: "buildkite-agent"
  loop: "{{ buildkite_config }}"
  notify:
    - restart buildkite-agent

- name: Copy environment hook
  ansible.builtin.copy:
    dest: /etc/buildkite-agent/hooks/environment
    owner: "buildkite-agent"
    group: "buildkite-agent"
    content: |
      #!/bin/bash
      set -euo pipefail

      {{ buildkite_environment_hook }}
  notify:
    - restart buildkite-agent

- name: Ensure buildkite-agent is enabled
  systemd:
    name: buildkite-agent
    state: started
    enabled: true