optimize github workflows, use specific test db

This commit is contained in:
einhornimmond 2025-04-26 15:08:10 +02:00
parent abc56742ae
commit 169735b774
5 changed files with 52 additions and 75 deletions

View File

@ -43,18 +43,20 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
- name: Backend | docker-compose mariadb
- name: docker-compose mariadb
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps mariadb
- name: Backend | install and build
run: cd database && yarn && yarn build && cd ../config && yarn && cd ../backend && yarn && yarn build
- name: Sleep for 30 seconds
run: sleep 30s
shell: bash
- name: wait for database to be ready
run: docker run --rm --network gradido_internal-net busybox sh -c 'until nc -z mariadb 3306; do echo waiting for db; sleep 1; done;'
- name: Backend | docker-compose database
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database
- name: Backend | prepare database
run: cd database && yarn up:backend_test
- name: Backend | Unit tests
run: cd database && yarn && yarn build && cd ../config && yarn install && cd ../backend && yarn && yarn test
- name: Backend | Unit tests
run: cd backend && yarn test
lint:
if: needs.files-changed.outputs.backend == 'true'
@ -66,7 +68,7 @@ jobs:
uses: actions/checkout@v3
- name: Backend | Lint
run: cd database && yarn && cd ../config && yarn install && cd ../backend && yarn && yarn run lint
run: cd backend && yarn && yarn run lint
locales:
if: needs.files-changed.outputs.backend == 'true'

View File

@ -42,7 +42,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
- name: Database | docker-compose
- name: docker-compose mariadb
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach mariadb
- name: Database | up

View File

@ -31,15 +31,7 @@ jobs:
uses: actions/checkout@v3
- name: Build 'test' image
run: |
docker build --target test -t "gradido/dht-node:test" -f dht-node/Dockerfile .
docker save "gradido/dht-node:test" > /tmp/dht-node.tar
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: docker-dht-node-test
path: /tmp/dht-node.tar
run: docker build --target test -t "gradido/dht-node:test" -f dht-node/Dockerfile .
lint:
name: Lint - DHT Node
@ -50,8 +42,8 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
- name: Lint
run: cd database && yarn && cd ../config && yarn install && cd ../dht-node && yarn && yarn run lint
- name: DHT-Node | Lint
run: cd dht-node && yarn && yarn run lint
unit_test:
name: Unit Tests - DHT Node
@ -62,30 +54,18 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
- name: Download Docker Image
uses: actions/download-artifact@v4
with:
name: docker-dht-node-test
path: /tmp
- name: Load Docker Image
run: docker load < /tmp/dht-node.tar
- name: docker-compose mariadb
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps mariadb
- name: Sleep for 30 seconds
run: sleep 30s
shell: bash
- name: DHT-Node | install and build
run: cd database && yarn && yarn build && cd ../config && yarn && cd ../dht-node && yarn && yarn build
- name: docker-compose database
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database
- name: wait for database to be ready
run: docker run --rm --network gradido_internal-net busybox sh -c 'until nc -z mariadb 3306; do echo waiting for db; sleep 1; done;'
- name: Sleep for 30 seconds
run: sleep 30s
shell: bash
- name: DHT-Node | prepare database
run: cd database && yarn up:dht_test
- name: DHT-Node | Unit tests
run: cd dht-node && yarn test
- name: Unit tests
run: cd database && yarn && yarn build && cd ../config && yarn install && cd ../dht-node && yarn && yarn test
#- name: Unit tests
# run: docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/dht-node:test yarn run test

View File

@ -13,25 +13,10 @@ jobs:
- name: Boot up test system | docker-compose mariadb
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach mariadb
- name: Sleep for 10 seconds
run: sleep 10s
- name: Boot up test system | seed backend
run: |
sudo chown runner:docker -R *
cd database
yarn && yarn dev_reset
cd ../config
yarn install
cd ../backend
yarn && yarn seed
- name: Boot up test system | docker-compose backend, frontend, admin, nginx, mailserver
run: |
cd backend
cp .env.test_e2e .env
cd ..
docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps backend frontend admin nginx mailserver
- name: Prepare test system
run: sudo chown runner:docker -R *
cd database && yarn
cd ../backend && yarn
- name: End-to-end tests | prepare
run: |
@ -41,6 +26,21 @@ jobs:
cd e2e-tests/
yarn
- name: wait for database to be ready
run: docker run --rm --network gradido_internal-net busybox sh -c 'until nc -z mariadb 3306; do echo waiting for db; sleep 1; done;'
- name: Boot up test system | seed backend
run: |
cd database && yarn dev_reset
cd ../backend && yarn seed
- name: Boot up test system | docker-compose backend, frontend, admin, nginx, mailserver
run: |
cd backend
cp .env.test_e2e .env
cd ..
docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps backend frontend admin nginx mailserver
- name: End-to-end tests | run tests
id: e2e-tests
run: |

View File

@ -72,20 +72,15 @@ jobs:
- name: docker-compose mariadb
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps mariadb
- name: Sleep for 30 seconds
run: sleep 30s
shell: bash
- name: docker-compose database
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps database
- name: Federation | install and build
run: cd database && yarn && yarn build && cd ../config && yarn && cd ../federation && yarn && yarn build
- name: Sleep for 30 seconds
run: sleep 30s
shell: bash
- name: wait for database to be ready
run: docker run --rm --network gradido_internal-net busybox sh -c 'until nc -z mariadb 3306; do echo waiting for db; sleep 1; done;'
#- name: Unit tests
# run: cd database && yarn && yarn build && cd ../dht-node && yarn && yarn test
- name: Unit tests
run: |
docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/federation:test yarn run test
- name: Federation | prepare database
run: cd database && yarn up:federation_test
- name: Federation | Unit tests
run: docker run --env NODE_ENV=test --env DB_HOST=mariadb --network gradido_internal-net --rm gradido/federation:test yarn run test