Zack Williams | 70fdc27 | 2022-06-15 06:48:40 -0700 | [diff] [blame^] | 1 | --- |
| 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 |