Skip to content

Commit

Permalink
Separate backend and client tests to have indepdendent badges
Browse files Browse the repository at this point in the history
  • Loading branch information
evilaliv3 committed Nov 18, 2024
1 parent 59986d2 commit 3578af4
Show file tree
Hide file tree
Showing 8 changed files with 106 additions and 77 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ jobs:
- name: Run tests
run: |
cd $GITHUB_WORKSPACE
./.github/workflows/scripts/run-build.sh
./.github/workflows/scripts/run_build.sh
73 changes: 0 additions & 73 deletions .github/workflows/scripts/run-tests.sh

This file was deleted.

File renamed without changes.
32 changes: 32 additions & 0 deletions .github/workflows/scripts/run_tests_backend.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/bash

backend_test_failed=0

setupBackend() {
cd $GITHUB_WORKSPACE/backend # to install backend dependencies
pip3 install -r requirements/requirements-$(lsb_release -cs).txt
}

echo "Running setup"
sudo apt-get update
sudo apt-get install -y tor
pip install coverage
setupBackend

# Running backend tests
echo "Running backend tests"
cd $GITHUB_WORKSPACE/backend && coverage run setup.py test
if [ $? -ne 0 ]; then
backend_test_failed=1
fi

cd $GITHUB_WORKSPACE/backend && coverage xml
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -l Python -r $GITHUB_WORKSPACE/backend/coverage.xml

if [ $backend_test_failed -eq 1 ]; then
echo "Backend unit tests: FAILED"
exit 1
else
echo "Backend unit tests: PASSED"
exit 0
fi
41 changes: 41 additions & 0 deletions .github/workflows/scripts/run_tests_client.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/bash

client_test_failed=0

setupBackend() {
cd $GITHUB_WORKSPACE/backend # to install backend dependencies
pip3 install -r requirements/requirements-$(lsb_release -cs).txt
}

setupClient() {
cd $GITHUB_WORKSPACE/client # to install frontend dependencies
npm install -d
./node_modules/grunt/bin/grunt build_and_instrument
}

echo "Running setup"
sudo apt-get update
sudo apt-get install -y tor
npm install -g grunt grunt-cli
setupBackend
setupClient

$GITHUB_WORKSPACE/backend/bin/globaleaks -z
sleep 5

# Running client tests locally
echo "Running client tests locally collecting code coverage"
cd $GITHUB_WORKSPACE/client && npm test
if [ $? -ne 0 ]; then
client_test_failed=1
fi

bash <(curl -Ls https://coverage.codacy.com/get.sh) report -l TypeScript -r $GITHUB_WORKSPACE/client/cypress/coverage/lcov.info

if [ $client_test_failed -eq 1 ]; then
echo "Client tests: FAILED"
exit 1
else
echo "Client tests: PASSED"
exit 0
fi
28 changes: 28 additions & 0 deletions .github/workflows/test-backend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Tests (Backend)

on: [ push, pull_request ]

# Declare default permissions as read only.
permissions: read-all

env:
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}

jobs:
run_tests:
runs-on: "ubuntu-latest"
steps:
- name: Check out repository code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
fetch-depth: 1

- name: Install git
run: |
sudo apt-get update -q
sudo apt-get install -y git
- name: Run tests
run: |
cd $GITHUB_WORKSPACE
./.github/workflows/scripts/run-tests-backend.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test
name: Tests (Client)

on: [ push, pull_request ]

Expand All @@ -25,4 +25,4 @@ jobs:
- name: Run tests
run: |
cd $GITHUB_WORKSPACE
./.github/workflows/scripts/run-tests.sh
./.github/workflows/scripts/run-tests-client.sh
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ The software is recognized by the [Digital Public Good Alliance](https://digital
| Metric | [Stable branch](https://github.com/globaleaks/globaleaks-whistleblowing-software/tree/stable) | [Devel branch](https://github.com/globaleaks/globaleaks-whistleblowing-software/tree/devel) |
| :---: | :---: | :---: |
| Build Status | [![build workflow](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/build.yml/badge.svg?branch=stable)](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/build.yml?query=branch%3Astable) | [![build workflow](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/build.yml/badge.svg?branch=devel)](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/build.yml?query=branch%3Adevel) |
| Tests: | [![build workflow](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/test.yml/badge.svg?branch=stable)] | [![build workflow](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/test.yml/badge.svg?branch=devel)] |
| Tests (Backend): | [![build workflow](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/test-backend.yml/badge.svg?branch=stable)] | [![build workflow](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/test-backend.yml/badge.svg?branch=devel)] |
| Tests (Client): | [![build workflow](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/test-client.yml/badge.svg?branch=stable)] | [![build workflow](https://github.com/globaleaks/globaleaks-whistleblowing-software/actions/workflows/test-client.yml/badge.svg?branch=devel)] |
| Coverage: | [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/c09f1ec9607f4546924d19798a98dd7d?branch=stable)](https://app.codacy.com/gh/globaleaks/globaleaks-whistleblowing-software/dashboard) | [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/c09f1ec9607f4546924d19798a98dd7d?branch=devel)](https://app.codacy.com/gh/globaleaks/globaleaks-whistleblowing-software/dashboard) |
| Quality: | [![Codacy Badge](https://app.codacy.com/project/badge/Grade/c09f1ec9607f4546924d19798a98dd7d?branch=stable)](https://app.codacy.com/gh/globaleaks/globaleaks-whistleblowing-software/dashboard) | [![Codacy Badge](https://app.codacy.com/project/badge/Grade/c09f1ec9607f4546924d19798a98dd7d?branch=devel)](https://app.codacy.com/gh/globaleaks/globaleaks-whistleblowing-software/dashboard) |
| Documentation | [![Build Status](https://readthedocs.org/projects/globaleaks/badge/?version=stable&style=flat)](https://docs.globaleaks.org/en/stable/) | [![Build Status](https://readthedocs.org/projects/globaleaks/badge/?version=devel&style=flat)](https://docs.globaleaks.org/en/devel/) |
Expand Down

0 comments on commit 3578af4

Please sign in to comment.