Skip to content
This repository has been archived by the owner on Nov 26, 2020. It is now read-only.

cpswarm/deployment-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPSwarm Deployment Tool

GoDoc Docker Pulls GitHub tag (latest SemVer) Build Status

The CPSwarm Deployment Tool is a lightweight software deployment system for IoT devices. It aims to provide secure, practical, and easy to use utilities for over-the-air (OTA) provisioning of software on single-board computers (e.g. Raspberry Pi). The project is currently under active development.

CPSwarm Deployment Tool - Conceptual Diagram

Getting Started

Deployment

Packages are built continuously with Bamboo.

Docker

Docker compose scripts are available for Deployment Manager and dummy Deployment Agents.

Install on Debian ARM

wget https://pipelines.linksmart.eu/artifact/CPSW-DTB/shared/build-latest/Debian-packages/linksmart-deployment-agent.deb
sudo apt install ./deployment-agent-linux-arm.deb

Compile from source

Within the root of the repository:

go build -o bin/manager ./manager
go build -o bin/agent  ./agent

Build with static linking

CGO_CPPFLAGS="-I/usr/include" CGO_LDFLAGS="-L/usr/lib -lzmq -lpthread -lrt -lstdc++ -lm -lc -lgcc" go build -v --ldflags '-extldflags "-static"' -a -o bin/agent ./agent

Compile using Go < 1.11

git clone <repo-addr> src/code.linksmart.eu/dt/deployment-tool
export GOPATH=$(pwd)
go build -v code.linksmart.eu/dt/deployment-tool/agent

Development

Run tests

Locally:

 go test ./tests -v -failfast

In a docker container:

docker network create test-network
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):$(pwd) -w $(pwd) --network=test-network -e EXTERNAL-NETWORK=test-network golang:1.12 go test ./tests -v -failfast
docker network remove test-network

Dependencies

Contributing

Contributions are welcome.

Please fork, make your changes, and submit a pull request. For major changes, please open an issue first and discuss it with the other authors.

Affiliation

CPSwarm
This work is supported by the European Commission through the CPSwarm H2020 project under grant no. 731946.