diff options
author | Emiliano Ciavatta | 2021-07-28 08:17:39 +0000 |
---|---|---|
committer | Emiliano Ciavatta | 2021-07-28 08:17:39 +0000 |
commit | 520901864877b7be3115e4fa0ee6544c3de2476c (patch) | |
tree | a5a2784c1aad4002191eecefce5629363aed990f /.github | |
parent | fdb0bf97d2dec72adf08e5f2d7ad65b560d8cf8e (diff) |
Add github test workflow
Diffstat (limited to '.github')
-rw-r--r-- | .github/docker/Dockerfile | 18 | ||||
-rw-r--r-- | .github/docker/docker-compose.yml | 16 | ||||
-rw-r--r-- | .github/workflows/test.yml | 57 |
3 files changed, 91 insertions, 0 deletions
diff --git a/.github/docker/Dockerfile b/.github/docker/Dockerfile new file mode 100644 index 0000000..1f9f72d --- /dev/null +++ b/.github/docker/Dockerfile @@ -0,0 +1,18 @@ +FROM ubuntu:20.04 + +# Install tools and libraries +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -qq golang-1.14 pkg-config libpcap-dev libhyperscan-dev yarnpkg + +COPY ./ /caronte + +WORKDIR /caronte + +RUN ln -sf ../lib/go-1.14/bin/go /usr/bin/go && \ + go mod download && \ + go build && \ + cd frontend && \ + yarnpkg install && \ + yarnpkg build + +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 |