blob: b537985c06e50dcc7b13cc9f1d8ec22b2d33eb48 [file] [log] [blame]
Zack Williams70fdc272022-06-15 06:48:40 -07001---
2# golang tasks/main.yml
3#
4# SPDX-FileCopyrightText: 2022 Open Networking Foundation <support@opennetworking.org>
5# SPDX-License-Identifier: Apache-2.0
6
7- name: include OS-specific vars
8 include_vars: "{{ ansible_os_family }}.yml"
9
10- name: include OS-specific tasks
11 include_tasks: "{{ ansible_os_family }}.yml"
12
13- name: Create golang dist dir
14 file:
15 path: "{{ golang_dist_dir }}"
16 state: directory
17 owner: "root"
18 group: "root"
19 mode: "0755"
20
21- name: download golang .tar.gz to dist dir
22 get_url:
23 url: "https://go.dev/dl/go{{ golang_version }}.{{ golang_arch }}.tar.gz"
24 dest: "{{ golang_dist_dir }}/go{{ golang_version }}.tar.gz"
25 owner: "root"
26 group: "root"
27 mode: "0644"
28 checksum: "{{ golang_checksum }}"
29
30- name: Unarchive golang distribution
31 unarchive:
32 remote_src: true
33 src: "{{ golang_dist_dir }}/go{{ golang_version }}.tar.gz"
34 dest: "/usr/local/"
35 owner: "root"
36 group: "root"
37 creates: "/usr/local/go/bin/go"
38
39- name: Create symlinks in /usr/local/bin for go binaries
40 file:
41 state: link
42 src: "/usr/local/go/bin/{{ item }}"
43 dest: "/usr/local/bin/{{ item }}"
44 with_items:
45 - "go"
46 - "gofmt"
47
48# additional tools
49- name: Download golangci-lint
50 get_url:
51 url: >-
52 https://github.com/golangci/golangci-lint/releases/download/v{{ golang_golangci_lint_version
53 }}/golangci-lint-{{ golang_golangci_lint_version
54 }}-{{ golang_arch }}.tar.gz
55 dest: "{{ golang_dist_dir }}/golangci-lint_{{ golang_golangci_lint_version }}.tar.gz"
56 owner: "root"
57 group: "root"
58 mode: "0644"
59
60- name: Unarchive golangci-lint distribution
61 unarchive:
62 remote_src: true
63 src: "{{ golang_dist_dir }}/golangci-lint_{{ golang_golangci_lint_version }}.tar.gz"
64 dest: "{{ golang_dist_dir }}"
65 owner: "root"
66 group: "root"
67 creates: >-
68 {{ golang_dist_dir }}/golangci-lint-{{ golang_golangci_lint_version }}-{{ golang_arch }}
69
70- name: Install golangci-lint binary
71 copy:
72 src: >-
73 {{ golang_dist_dir }}/golangci-lint-{{ golang_golangci_lint_version }}-{{ golang_arch
74 }}/golangci-lint
75 dest: /usr/local/bin/golangci-lint
76 mode: "0755"
77 remote_src: true
78
79- name: Install go-junit-report
80 environment:
81 GOPATH: "/usr/local/go"
82 command:
83 cmd: "go install github.com/jstemmer/go-junit-report/v2@v{{ golang_go_junit_report_version }}"
84 creates: "/usr/local/go/bin/go-junit-report"
85
86- name: Install gocover-cobertura
87 environment:
88 GOPATH: "/usr/local/go"
89 command:
90 cmd: "go install github.com/t-yuki/gocover-cobertura@{{ golang_gocover_cobertura_version }}"
91 creates: "/usr/local/go/bin/gocover-cobertura"
92
93# link additional tools
94- name: Create symlinks in /usr/local/bin for additional tool binaries
95 file:
96 state: link
97 src: "/usr/local/go/bin/{{ item }}"
98 dest: "/usr/local/bin/{{ item }}"
99 with_items:
100 - "go-junit-report"
101 - "gocover-cobertura"
102
103# cleanup
104- name: Delete golang dist dir (containers)
105 when: golang_delete_dist
106 file:
107 path: "{{ golang_dist_dir }}"
108 state: absent