diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 23cdd3b02ab..7be6925fae1 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -87,9 +87,9 @@ services: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} ports: - - "5432:5432" + - "5434:5432" volumes: - - "../pg/db:/var/lib/postgresql/data" + - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -d webknossos -U ${POSTGRES_USER} -h 127.0.0.1 -p 5432"] interval: 2s @@ -111,3 +111,7 @@ services: timeout: 1s interval: 5s retries: 10 + +volumes: + postgres_data: + external: false diff --git a/.github/workflows/build_test_deploy.yml b/.github/workflows/build_test_deploy.yml index f73d8a8ee80..8a0a0fcaeac 100644 --- a/.github/workflows/build_test_deploy.yml +++ b/.github/workflows/build_test_deploy.yml @@ -4,6 +4,8 @@ on: push: branches: - master + tags: + - '*' pull_request: branches: - '*' @@ -11,7 +13,7 @@ on: env: USER_UID: 1001 USER_GID: 1001 - POSTGRES_URL: "jdbc:postgresql://localhost:5432/webknossos" + POSTGRES_URL: "jdbc:postgresql://localhost:5434/webknossos" POSTGRES_USER: "webknossos_user" POSTGRES_PASSWORD: "secret_password" CERTIFICATE: ${{ secrets.CERTIFICATE_FOR_CI_ONLY }} diff --git a/package.json b/package.json index 8cb5223c3a6..7ffef837461 100644 --- a/package.json +++ b/package.json @@ -98,13 +98,13 @@ "test-e2e": "tools/postgres/dbtool.js prepare-test-db && tools/test.sh test-e2e --timeout=60s --verbose", "test-screenshot": "tools/test.sh test-screenshot --timeout=5m", "test-wkorg-screenshot": "tools/test.sh test-wkorg-screenshot --timeout=5m", - "refresh-screenshots": "rm -rf frontend/javascripts/test/screenshots/** && docker compose up screenshot-tests", + "refresh-screenshots": "tools/refresh-screenshots.sh", "test-help": "echo For development it is recommended to run yarn test-prepare-watch in one terminal and yarn test-watch in another. This is the fastest way to perform incremental testing. If you are only interested in running test once, use yarn test.", "remove-e2e-snapshots": "rm -rf frontend/javascripts/test/snapshots/public-test/test-bundle/test/backend-snapshot-tests/ && rm -rf frontend/javascripts/test/snapshots/public-test/test-bundle/test/enzyme/", "remove-all-snapshots": "rm -rf frontend/javascripts/test/snapshots/", "stash-cmake-cache": "[ -f webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt ] && mv webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt.bak || true", "stash-pop-cmake-cache": "[ -f webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt.bak ] && mv webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt.bak webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt || true", - "refresh-e2e-snapshots": "yarn remove-e2e-snapshots && mkdir -p frontend/javascripts/test/snapshots/type-check && yarn stash-cmake-cache && docker compose down && docker compose up e2e-tests && yarn stash-pop-cmake-cache", + "refresh-e2e-snapshots": "yarn remove-e2e-snapshots && mkdir -p frontend/javascripts/test/snapshots/type-check && yarn stash-cmake-cache && ./tools/docker-env.sh sbt -v 'testOnly e2e.* -- -Ddatastore.watchFileSystem.enabled=false' && yarn stash-pop-cmake-cache", "refresh-all-snapshots": "yarn remove-all-snapshots && yarn test && yarn refresh-e2e-snapshots", "check-frontend": "yarn run biome check frontend package.json && tools/assert-no-test-only.sh", "fix-frontend": "yarn run biome check frontend package.json --write && echo Please proofread the applied suggestions, as they may not be safe.", diff --git a/tools/docker-env.sh b/tools/docker-env.sh new file mode 100755 index 00000000000..ee2555e530c --- /dev/null +++ b/tools/docker-env.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +# Start Docker +export POSTGRES_URL=jdbc:postgresql://localhost:5434/webknossos +export POSTGRES_USER="webknossos" +export POSTGRES_PASSWORD="secret" + +cd .github || exit +docker compose down -v +docker compose up -d postgres fossildb +cd .. || exit + +"$@" +RESULT=$? + +cd .github || exit +docker compose down -v +cd .. || exit + +exit "$RESULT" diff --git a/tools/refresh-screenshots.sh b/tools/refresh-screenshots.sh new file mode 100755 index 00000000000..ed19c85cc04 --- /dev/null +++ b/tools/refresh-screenshots.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -xe + +rm -rf frontend/javascripts/test/screenshots/** + +docker run --rm -t \ + -e "URL=$URL" \ + -e "WK_AUTH_TOKEN=$WK_AUTH_TOKEN" \ + -w "/home/pptruser/webknossos" \ + -v ".:/home/pptruser/webknossos" \ + -u "$(id -u):$(id -g)" \ + scalableminds/puppeteer:master bash -c 'for i in {1..3}; do yarn test-screenshot && break; done'