aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmiliano Ciavatta2021-07-28 08:17:39 +0000
committerEmiliano Ciavatta2021-07-28 08:17:39 +0000
commit520901864877b7be3115e4fa0ee6544c3de2476c (patch)
treea5a2784c1aad4002191eecefce5629363aed990f
parentfdb0bf97d2dec72adf08e5f2d7ad65b560d8cf8e (diff)
Add github test workflow
-rw-r--r--.github/docker/Dockerfile (renamed from Dockerfile.testing)4
-rw-r--r--.github/docker/docker-compose.yml16
-rw-r--r--.github/workflows/test.yml57
-rw-r--r--docker-compose.testing.yml27
-rwxr-xr-xscripts/travis_tests.sh18
5 files changed, 75 insertions, 47 deletions
diff --git a/Dockerfile.testing b/.github/docker/Dockerfile
index 3498341..1f9f72d 100644
--- a/Dockerfile.testing
+++ b/.github/docker/Dockerfile
@@ -4,7 +4,7 @@ FROM ubuntu:20.04
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -qq golang-1.14 pkg-config libpcap-dev libhyperscan-dev yarnpkg
-COPY . /caronte
+COPY ./ /caronte
WORKDIR /caronte
@@ -15,4 +15,4 @@ RUN ln -sf ../lib/go-1.14/bin/go /usr/bin/go && \
yarnpkg install && \
yarnpkg build
-CMD ./caronte
+CMD go test -v -race -covermode=atomic
diff --git a/.github/docker/docker-compose.yml b/.github/docker/docker-compose.yml
new file mode 100644
index 0000000..393bb41
--- /dev/null
+++ b/.github/docker/docker-compose.yml
@@ -0,0 +1,16 @@
+version: "3.7"
+services:
+
+ mongo:
+ image: mongo:4.4
+
+ test:
+ build:
+ context: ../../
+ dockerfile: .github/docker/Dockerfile
+ image: caronte-test
+ depends_on:
+ - mongo
+ environment:
+ MONGO_HOST: mongo
+ MONGO_PORT: 27017
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..f762ce2
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,57 @@
+name: Build and Test
+
+on: [push, pull_request]
+
+jobs:
+ test_backend:
+ name: Build and test backend
+ runs-on: ubuntu-latest
+ services:
+ mongo:
+ image: mongo:4.4
+ ports:
+ - 27017:27017
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Go
+ uses: actions/setup-go@v2
+ with:
+ go-version: 1.16
+ - name: Install dependencies
+ run: apt-get install pkg-config libpcap-dev libhyperscan-dev
+ - name: Test backend
+ run: go test -v -race -coverprofile=coverage.txt -covermode=atomic
+ - name: Upload coverage
+ run: bash <(curl -s https://codecov.io/bash)
+ build_frontend:
+ name: Build frontend
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: 14.x
+ cache: 'yarn'
+ - run: cd frontend
+ - name: Install dependencies
+ run: yarn install
+ - name: Build frontend
+ run: yarn build
+ test_docker:
+ name: Build and test docker environment
+ runs-on: ubuntu-latest
+ env:
+ COMPOSE_FILE: .github/docker/docker-compose.yml
+ steps:
+ - uses: actions/checkout@v2
+ - name: Pull docker images
+ run: docker-compose pull mongo
+ - name: Build docker images
+ run: docker-compose build test
+ - name: Start MongoDB
+ run: docker-compose up -d mongo
+ - name: Run tests
+ run: docker-compose run test
+ - name: Destroy containers
+ run: docker-compose down
diff --git a/docker-compose.testing.yml b/docker-compose.testing.yml
deleted file mode 100644
index 9d75af9..0000000
--- a/docker-compose.testing.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-version: "3.7"
-services:
-
- mongo:
- image: mongo:4
- networks:
- - acheronet
- restart: always
-
- caronte:
- build:
- context: .
- dockerfile: Dockerfile.testing
- image: caronte
- ports:
- - "6666:6666"
- depends_on:
- - mongo
- networks:
- - acheronet
- command: "./scripts/travis_tests.sh"
- environment:
- MONGO_HOST: mongo
- MONGO_PORT: 27017
-
-networks:
- acheronet:
diff --git a/scripts/travis_tests.sh b/scripts/travis_tests.sh
deleted file mode 100755
index 5c51823..0000000
--- a/scripts/travis_tests.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-# wait mongodb server
-sleep 10
-
-# run tests
-go test -v -race -coverprofile=coverage.txt -covermode=atomic
-
-RET_CODE=$?
-
-#
-if [ $RET_CODE -eq 0 ]; then
- echo "travis_tests_success"
-else
- echo "travis_tests_fails"
-fi
-
-exit $RET_CODE