blob: b537985c06e50dcc7b13cc9f1d8ec22b2d33eb48 [file] [log] [blame]
---
# golang tasks/main.yml
#
# SPDX-FileCopyrightText: 2022 Open Networking Foundation <support@opennetworking.org>
# SPDX-License-Identifier: Apache-2.0
- name: include OS-specific vars
include_vars: "{{ ansible_os_family }}.yml"
- name: include OS-specific tasks
include_tasks: "{{ ansible_os_family }}.yml"
- name: Create golang dist dir
file:
path: "{{ golang_dist_dir }}"
state: directory
owner: "root"
group: "root"
mode: "0755"
- name: download golang .tar.gz to dist dir
get_url:
url: "https://go.dev/dl/go{{ golang_version }}.{{ golang_arch }}.tar.gz"
dest: "{{ golang_dist_dir }}/go{{ golang_version }}.tar.gz"
owner: "root"
group: "root"
mode: "0644"
checksum: "{{ golang_checksum }}"
- name: Unarchive golang distribution
unarchive:
remote_src: true
src: "{{ golang_dist_dir }}/go{{ golang_version }}.tar.gz"
dest: "/usr/local/"
owner: "root"
group: "root"
creates: "/usr/local/go/bin/go"
- name: Create symlinks in /usr/local/bin for go binaries
file:
state: link
src: "/usr/local/go/bin/{{ item }}"
dest: "/usr/local/bin/{{ item }}"
with_items:
- "go"
- "gofmt"
# additional tools
- name: Download golangci-lint
get_url:
url: >-
https://github.com/golangci/golangci-lint/releases/download/v{{ golang_golangci_lint_version
}}/golangci-lint-{{ golang_golangci_lint_version
}}-{{ golang_arch }}.tar.gz
dest: "{{ golang_dist_dir }}/golangci-lint_{{ golang_golangci_lint_version }}.tar.gz"
owner: "root"
group: "root"
mode: "0644"
- name: Unarchive golangci-lint distribution
unarchive:
remote_src: true
src: "{{ golang_dist_dir }}/golangci-lint_{{ golang_golangci_lint_version }}.tar.gz"
dest: "{{ golang_dist_dir }}"
owner: "root"
group: "root"
creates: >-
{{ golang_dist_dir }}/golangci-lint-{{ golang_golangci_lint_version }}-{{ golang_arch }}
- name: Install golangci-lint binary
copy:
src: >-
{{ golang_dist_dir }}/golangci-lint-{{ golang_golangci_lint_version }}-{{ golang_arch
}}/golangci-lint
dest: /usr/local/bin/golangci-lint
mode: "0755"
remote_src: true
- name: Install go-junit-report
environment:
GOPATH: "/usr/local/go"
command:
cmd: "go install github.com/jstemmer/go-junit-report/v2@v{{ golang_go_junit_report_version }}"
creates: "/usr/local/go/bin/go-junit-report"
- name: Install gocover-cobertura
environment:
GOPATH: "/usr/local/go"
command:
cmd: "go install github.com/t-yuki/gocover-cobertura@{{ golang_gocover_cobertura_version }}"
creates: "/usr/local/go/bin/gocover-cobertura"
# link additional tools
- name: Create symlinks in /usr/local/bin for additional tool binaries
file:
state: link
src: "/usr/local/go/bin/{{ item }}"
dest: "/usr/local/bin/{{ item }}"
with_items:
- "go-junit-report"
- "gocover-cobertura"
# cleanup
- name: Delete golang dist dir (containers)
when: golang_delete_dist
file:
path: "{{ golang_dist_dir }}"
state: absent