Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions .github/workflows/api-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated the runner images from ubuntu-latest (which pointed to 24.04 at the time of writing) to ubuntu-26.04 to work around the following race condition that happened in CI:

Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/home/runner/work/openapi/openapi/version-compare/seatable-license.txt" to rootfs at "/shared/seatable/seatable-license.txt": create mountpoint for /shared/seatable/seatable-license.txt mount: make mountpoint "/shared/seatable/seatable-license.txt": openat seatable-license.txt: file exists

This might have been caused by a bug in runc (opencontainers/runc#4543) that was patched in 2024 (opencontainers/runc#4549)

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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
3 changes: 2 additions & 1 deletion tests/test_columns.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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)",
)
Expand Down
2 changes: 1 addition & 1 deletion version-compare/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Loading