diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..972eaf745 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,33 @@ +name: Run Tests + +on: + push: + branches: + - main + + pull_request: + +jobs: + # Run tests + test: + runs-on: ubuntu-latest + + steps: + - name: Check Out Repository + uses: actions/checkout@v3 + + - name: Log in to package registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ github.token }} + + - name: Dependency Setup + run: ./setup.sh SSH + + - name: Docker Setup + run: docker-compose build + + - name: Run tests + run: docker-compose run test diff --git a/Dockerfile b/Dockerfile index 97fffd427..05030fc52 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,7 @@ FROM debian:bookworm AS babel-base +ENV COMPOSE_PROJECT_NAME=babel + # # does not work bookworm - evaluate if it's needed # RUN sed -i 's/main.*/main contrib non-free/' /etc/apt/sources.list @@ -84,6 +86,8 @@ FROM babel-base AS imgsrv-fcgi WORKDIR /htapps/babel/imgsrv CMD ["/htapps/babel/imgsrv/bin/startup_imgsrv"] +FROM babel-base AS test + FROM babel-base AS apache RUN apt-get -y install apache2 libapache2-mod-fcgid diff --git a/bin/test.sh b/bin/test.sh new file mode 100755 index 000000000..a51487993 --- /dev/null +++ b/bin/test.sh @@ -0,0 +1,3 @@ +#!/bin/bash +cd /htapps/babel/imgsrv +prove -lre 'perl -I lib -I vendor/common-lib/lib -I vendor/plack-lib/lib -I vendor/slip-lib/lib' t \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 5679fabcd..60572e21a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,5 @@ version: '3' -name: babel-firebird - services: imgsrv: @@ -10,6 +8,7 @@ services: target: imgsrv-fcgi user: ${CURRENT_USER} volumes: + - ${BABEL_HOME}/bin:/htapps/babel/bin - ${BABEL_HOME}/imgsrv:/htapps/babel/imgsrv - ${BABEL_HOME}/mdp-lib:/htapps/babel/mdp-lib - ${BABEL_HOME}/slip-lib:/htapps/babel/slip-lib @@ -203,6 +202,35 @@ services: profiles: - stage_item + test: + build: + context: . + target: test + volumes: + - ${BABEL_HOME}/bin:/htapps/babel/bin + - ${BABEL_HOME}/imgsrv:/htapps/babel/imgsrv + - ${BABEL_HOME}/mdp-lib:/htapps/babel/mdp-lib + - ${BABEL_HOME}/slip-lib:/htapps/babel/slip-lib + - ${BABEL_HOME}/plack-lib:/htapps/babel/plack-lib + - ${BABEL_HOME}/mdp-web:/htapps/babel/mdp-web + - ${BABEL_HOME}/logs:/htapps/babel/logs + - ${BABEL_HOME}/cache:/htapps/babel/cache + - ${BABEL_HOME}/sample-data/sdr1:/sdr1 + - ${BABEL_HOME}/sample-data/etc:/htapps/babel/etc + - ${BABEL_HOME}/sample-data/watermarks:/htapps/babel/watermarks + - ${BABEL_HOME}/sample-data:/tmp/sample-data + environment: + - SDRROOT=/htapps/babel + - SDRDATAROOT=/sdr1 + - HT_DEV=docker + - REMOTE_ADDR=127.0.0.1 + - HTTP_HOST=127.0.0.1 + - APACHE_LOG_DIR=/tmp + depends_on: + - mysql-sdr + - solr-sdr-catalog + command: bin/test.sh + # todo: ingest, bound to sample-data volumes: diff --git a/setup.sh b/setup.sh index 8bee33ad4..467ca1612 100755 --- a/setup.sh +++ b/setup.sh @@ -1,6 +1,11 @@ #!/usr/bin/env bash -cat <