diff --git a/.github/workflows/api-tests.yml b/.github/workflows/api-tests.yml index 816bbc0..ce764da 100644 --- a/.github/workflows/api-tests.yml +++ b/.github/workflows/api-tests.yml @@ -30,12 +30,23 @@ on: env: DEFAULT_VERSION: "7.0.6" DEFAULT_IMAGE: "seatable/seatable-enterprise-testing" - DTABLE_SERVER_VERSION: "7.0.3-testing" jobs: test: + name: "test (dtable-server-${{ matrix.implementation }})" runs-on: ubuntu-26.04 + strategy: + fail-fast: false + matrix: + include: + - implementation: go + dtable_server_version: "7.0.6-testing" + - implementation: js + dtable_server_version: "7.0.3-testing" + env: + DTABLE_SERVER_IMAGE: "seatable/dtable-server-${{ matrix.implementation }}" + DTABLE_SERVER_VERSION: ${{ matrix.dtable_server_version }} steps: - name: Check out repo uses: actions/checkout@v6 @@ -95,6 +106,7 @@ jobs: # API Test Report **SeaTable:** ${{ steps.version.outputs.image }}:${{ steps.version.outputs.version }} + **dtable-server:** ${DTABLE_SERVER_IMAGE}:${DTABLE_SERVER_VERSION} **Branch:** ${GITHUB_REF_NAME} **Results:** ${passed} ${failed} ${errors} HEADER @@ -132,7 +144,7 @@ jobs: if: always() uses: actions/upload-artifact@v7 with: - name: api-tests-${{ steps.version.outputs.version }} + name: api-tests-seatable-server-${{ steps.version.outputs.version }}-dtable-server-${{ matrix.implementation }}-${{ matrix.dtable_server_version }} path: /tmp/report/ retention-days: 30 diff --git a/README.md b/README.md index 1b99a74..b731adb 100644 --- a/README.md +++ b/README.md @@ -99,9 +99,9 @@ cd version-compare export SEATABLE_IMAGE=seatable/seatable-enterprise export SEATABLE_VERSION=6.0.10 -# seatable/dtable-server-js or seatable/dtable-server-go -export DTABLE_SERVER_IMAGE=seatable/dtable-server-js -export DTABLE_SERVER_VERSION=7.0.3-testing +# seatable/dtable-server-go or seatable/dtable-server-js +export DTABLE_SERVER_IMAGE=seatable/dtable-server-go +export DTABLE_SERVER_VERSION=7.0.6-testing # Create license file cp "SOURCE" seatable-license.txt diff --git a/tests/conftest.py b/tests/conftest.py index dc41a24..c84e2de 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -14,6 +14,9 @@ from typing import Generator +USES_GO_DTABLE_SERVER = os.environ.get('DTABLE_SERVER_IMAGE', '').endswith('dtable-server-go') + + def pytest_configure(config): config.addinivalue_line( 'markers', diff --git a/tests/test_columns.py b/tests/test_columns.py index 23ffb35..f2ed697 100644 --- a/tests/test_columns.py +++ b/tests/test_columns.py @@ -1,5 +1,5 @@ import pytest -from conftest import Base, base_operations_schema +from conftest import Base, base_operations_schema, USES_GO_DTABLE_SERVER from schemathesis import Case from syrupy.assertion import SnapshotAssertion from syrupy.matchers import path_type @@ -399,6 +399,7 @@ def test_insertColumn_duplicate_name_returns_400(base: Base): @pytest.mark.xfail( + not USES_GO_DTABLE_SERVER, reason="insertColumn returns the plain-text body 'Column ColA exists.' with an " "application/json content-type on a duplicate-column 400 (not valid JSON)", ) diff --git a/version-compare/docker-compose.yml b/version-compare/docker-compose.yml index 7dae2c5..2cdf1af 100644 --- a/version-compare/docker-compose.yml +++ b/version-compare/docker-compose.yml @@ -40,7 +40,7 @@ services: - backend dtable-server: - image: ${DTABLE_SERVER_IMAGE:-seatable/dtable-server-js}:${DTABLE_SERVER_VERSION:?Variable is not set} + image: ${DTABLE_SERVER_IMAGE:?Variable is not set}:${DTABLE_SERVER_VERSION:?Variable is not set} container_name: dtable-server restart: unless-stopped environment: