82 lines
2.6 KiB
YAML
82 lines
2.6 KiB
YAML
dist: trusty
|
|
sudo: required
|
|
language: go
|
|
|
|
addons:
|
|
apt:
|
|
packages:
|
|
# needed for the nfpm pipe:
|
|
- rpm
|
|
# needed for the snap pipe:
|
|
- snapd
|
|
|
|
env:
|
|
- GO111MODULE=on
|
|
# needed for the snap pipe:
|
|
- PATH=/snap/bin:$PATH
|
|
|
|
services:
|
|
- docker
|
|
|
|
before_install:
|
|
- echo "Testing Docker Hub credentials"
|
|
- if [[ "$DOCKER_PASSOWRD" != "" ]]; then docker login -u=$DOCKER_USERNAME -p=$DOCKER_PASSWORD; fi
|
|
- echo "Docker Hub credentials are working"
|
|
# If I see one day that Travis CI updates their default docker version
|
|
# I can remove the lines below. That's why I leave this here :-)
|
|
- docker version
|
|
- sudo apt-get remove docker docker-engine docker.io
|
|
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
|
- sudo apt-get update
|
|
- sudo apt-get install -y docker-ce nmap
|
|
- go get github.com/mattn/goveralls
|
|
- docker version
|
|
|
|
install:
|
|
# needed for the snap pipe:
|
|
- sudo snap install snapcraft --classic
|
|
- docker build -t cameradar .
|
|
|
|
script:
|
|
# Run unit tests
|
|
- GO111MODULE=on go test -v -covermode=count -coverprofile=coverage.out
|
|
- GO111MODULE=on $HOME/gopath/bin/goveralls -coverprofile=coverage.out -service=travis-ci -repotoken=$COVERALLS_TOKEN
|
|
# Launch fake cameras to check if cameradar is able to access them
|
|
- docker run -d --name="fake_camera_digest" -e RTSP_ROUTE="/live.sdp" -e RTSP_USERNAME="admin" -e RTSP_PASSWORD="12345" -e RTSP_AUTHENTICATION_METHOD="digest" -p 8554:8554 ullaakut/rtspatt
|
|
- docker run -d --name="fake_camera_basic" -e RTSP_ROUTE="/live.sdp" -e RTSP_USERNAME="root" -e RTSP_PASSWORD="root" -e RTSP_AUTHENTICATION_METHOD="digest" -p 5554:5554 ullaakut/rtspatt
|
|
# Launch cameradar on the local machine
|
|
- docker run --net=host -t cameradar -t 0.0.0.0 -p 8554,5554 -v > logs.txt
|
|
# Gather the logs from the cameras
|
|
- docker logs fake_camera_digest > camera_digest_logs.txt
|
|
- docker logs fake_camera_basic > camera_basic_logs.txt
|
|
# Stop the fake cameras
|
|
- docker stop fake_camera_basic
|
|
- docker stop fake_camera_digest
|
|
# Print logs
|
|
- cat camera_digest_logs.txt
|
|
- cat camera_basic_logs.txt
|
|
- cat logs.txt
|
|
- grep "Successful attack" logs.txt || exit 1
|
|
|
|
after_success:
|
|
# You'll need to run `snapcraft export-login snap.login` and
|
|
# `travis encrypt-file snap.login --add` to add the key to the travis
|
|
# environment.
|
|
- test -n "$TRAVIS_TAG" && snapcraft login --with snap.login
|
|
|
|
# calls goreleaser
|
|
deploy:
|
|
- provider: script
|
|
skip_cleanup: true
|
|
script: curl -sL https://git.io/goreleaser | bash
|
|
on:
|
|
tags: true
|
|
condition: $TRAVIS_OS_NAME = linux
|
|
|
|
notifications:
|
|
email:
|
|
recipients:
|
|
- brendan.le-glaunec@epitech.eu
|
|
on_success: never
|
|
on_failure: always
|