--- - hosts: torwaechter connection: local pre_tasks: - name: Create go directories file: path: "{{ global_cache_dir }}/{{ inventory_hostname }}/{{ item }}" state: directory with_items: [ gopath, gocache ] - name: Clone necessary git repositories git: repo: https://github.com/realraum/{{ item }}.git dest: "{{ global_cache_dir }}/{{ inventory_hostname }}/{{ item }}" update: True with_items: [ door_and_sensors ] - name: Download dependencies command: go get -d ./... args: chdir: "{{ global_cache_dir }}/{{ inventory_hostname }}/door_and_sensors/{{ item }}" environment: GOCACHE: "{{ global_cache_dir }}/{{ inventory_hostname }}/gocache" GOPATH: "{{ global_cache_dir }}/{{ inventory_hostname }}/gopath" with_items: [ door_client, door_daemon, update-keys ] - name: Cross-compile Go binaries command: go build -ldflags "-s" args: chdir: "{{ global_cache_dir }}/{{ inventory_hostname }}/door_and_sensors/{{ item }}" environment: GOCACHE: "{{ global_cache_dir }}/{{ inventory_hostname }}/gocache" GOPATH: "{{ global_cache_dir }}/{{ inventory_hostname }}/gopath" GO386: 387 CGO_ENABLED: 0 GOOS: linux GOARCH: 386 with_items: [ door_client, door_daemon, update-keys ] roles: - role: openwrt/image delegate_to: localhost