From d019e596b7ad520655467872addea8b485db203e Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Fri, 19 Jan 2024 15:23:22 +0100 Subject: [PATCH] Updated README and scripts --- .gitlab/logo.png | Bin 0 -> 11815 bytes .scripts/docker-prune.sh | 5 ---- Makefile | 6 ++-- README.md | 50 ++++++++++++++++++++++++++++++++-- bin/build-docker.sh | 4 +++ {.scripts => bin}/teardown.sh | 0 bin/test.sh | 12 ++++++++ requirements.txt | 8 ------ 8 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 .gitlab/logo.png delete mode 100755 .scripts/docker-prune.sh create mode 100644 bin/build-docker.sh rename {.scripts => bin}/teardown.sh (100%) create mode 100644 bin/test.sh delete mode 100644 requirements.txt diff --git a/.gitlab/logo.png b/.gitlab/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d34412dab6e6be0ae66e8c9f35f42c0a7bcf437e GIT binary patch literal 11815 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 literal 0 HcmV?d00001 diff --git a/.scripts/docker-prune.sh b/.scripts/docker-prune.sh deleted file mode 100755 index c82dc1b674..0000000000 --- a/.scripts/docker-prune.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -if [[ "$CI_COMMIT_BRANCH" =~ (dev|master) ]]; then - echo "pruning for branch ${CI_COMMIT_BRANCH} ..." - docker system prune -f -a --volumes -fi \ No newline at end of file diff --git a/Makefile b/Makefile index 5f39f77cc7..79f8d5e104 100644 --- a/Makefile +++ b/Makefile @@ -28,9 +28,7 @@ build-analyse-service: bash ./dbrepo-analyse-service/build.sh build-docker: - docker build --network=host -t dbrepo-metadata-service:build --target build dbrepo-metadata-service - docker build --network=host -t dbrepo-data-service:build --target build dbrepo-data-service - docker compose build --parallel + bash ./bin/build-docker.sh build-frontend: yarn --cwd ./dbrepo-ui install --legacy-peer-deps @@ -220,7 +218,7 @@ test-clients: test: test-backend test-frontend teardown: - ./.scripts/teardown.sh + ./bin/teardown.sh docs: build-docker docker compose up -d || docker compose down diff --git a/README.md b/README.md index 4b38972edd..98b4d3798f 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [](https://opensource.org/licenses/Apache-2.0) [](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/tags) -<img src="./dbrepo-ui/static/logo.png" alt="DBREPO — Repository for Data in Databases" width="200" /> + ## tl;dr @@ -14,16 +14,62 @@ with: curl -sSL https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/install.sh | bash ``` +## Run + +tbd + ## Documentation Find a system description, component documentation and endpoint documentation online: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/. -## Contribute +## Development Contributions are always welcome and encouraged, please read the [contribution overview](./CONTRIBUTING.md) and contact [Prof. Andreas Rauber](http://www.ifs.tuwien.ac.at/~andi/) or [Martin Weise](https://ec.tuwien.ac.at/~weise/). +### Build + +Install the build dependencies under Debian +12 ([Instructions for Docker Engine](https://docs.docker.com/engine/install/debian/#install-using-the-repository)): + +```console +$ apt install -y bash maven openjdk-17-jdk nodejs && npm install --global yarn +$ node --version +v18.19.0 +``` + +Build the Docker containers: + +```console +./bin/build-docker.sh +``` + +### Test + +Install the [build dependencies](#build) as they also cover the test dependencies. + +Test the backend and frontend: + +```console +./bin/test.sh +``` + +## Run + +After [building the docker containers](#build) you can run them using the default `docker-compose.yml` in the root of +the sourcecode directory. This starts all services in the background (as daemons hence the `-d` flag). + +```console +$ docker compose up -d +``` + +Optionally view all logs in real-time: + +```console +$ docker compose logs -f +``` + ## Acknowledgements We want to thank the following organizations: diff --git a/bin/build-docker.sh b/bin/build-docker.sh new file mode 100644 index 0000000000..e58ec77e3c --- /dev/null +++ b/bin/build-docker.sh @@ -0,0 +1,4 @@ +#!/bin/bash +docker build -t dbrepo-metadata-service:build --target build dbrepo-metadata-service +docker build -t dbrepo-data-service:build --target build dbrepo-data-service +docker compose build --parallel \ No newline at end of file diff --git a/.scripts/teardown.sh b/bin/teardown.sh similarity index 100% rename from .scripts/teardown.sh rename to bin/teardown.sh diff --git a/bin/test.sh b/bin/test.sh new file mode 100644 index 0000000000..765ecaf6b7 --- /dev/null +++ b/bin/test.sh @@ -0,0 +1,12 @@ +#!/bin/bash +mvn -f ./dbrepo-metadata-service/pom.xml clean install -DskipTests +# test java services +mvn -f ./dbrepo-metadata-service/pom.xml clean test verify +mvn -f ./dbrepo-data-service/pom.xml clean test verify +# test python services +bash ./dbrepo-analyse-service/test.sh +bash ./dbrepo-search-service/test.sh +# test ui +yarn --cwd ./dbrepo-ui install +yarn --cwd ./dbrepo-ui run test:unit +yarn --cwd ./dbrepo-ui run coverage \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index c7dd197a44..0000000000 --- a/requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -mkdocs==1.4.3 -mkdocs-material==9.1.17 -mkdocs-with-pdf==0.9.3 -mkdocs-material-extensions>=1.0.3 -requests>=2.27.0 -py-dotenv>=0.1 -python-dotenv==1.0.0 -requests==2.31.0 \ No newline at end of file -- GitLab