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
18 changes: 9 additions & 9 deletions .github/readme-ids.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"version": "6.2",
"authentication": "69d4dc0c1422831f8d6fbb8e",
"base_operations": "69d4dc0c1422831f8d6fbb96",
"file_operations": "69d4dc0c1422831f8d6fbb95",
"system_admin_account_operations": "69d4dc0c1422831f8d6fbb92",
"team_admin_account_operations": "69d4dc0c1422831f8d6fbb91",
"user_account_operations": "69d4dc0c1422831f8d6fbb93",
"ping_and_info": "69d4dc0c1422831f8d6fbb90",
"python_scheduler": "69d4dc0c1422831f8d6fbb94"
"version": "7.0",
"authentication": "",
"base_operations": "",
"file_operations": "",
"system_admin_account_operations": "",
"team_admin_account_operations": "",
"user_account_operations": "",
"ping_and_info": "",
"python_scheduler": ""
}
28 changes: 22 additions & 6 deletions .github/workflows/api-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ on:
workflow_dispatch:
inputs:
version:
description: "SeaTable version (e.g. 6.1.8)"
description: "SeaTable version"
required: true
default: "6.1.8"
default: "7.0.7"
image:
description: "Docker Hub repository"
required: true
Expand All @@ -28,13 +28,25 @@ on:
- "seatable/seatable-enterprise-testing"

env:
DEFAULT_VERSION: "6.2.12"
DEFAULT_VERSION: "7.0.7"
DEFAULT_IMAGE: "seatable/seatable-enterprise-testing"


jobs:
test:
runs-on: ubuntu-latest
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.7-testing"
- implementation: js
dtable_server_version: "7.0.7-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 @@ -67,8 +79,11 @@ jobs:

- name: Start SeaTable ${{ steps.version.outputs.version }}
working-directory: version-compare
env:
SEATABLE_IMAGE: ${{ steps.version.outputs.image }}
SEATABLE_VERSION: ${{ steps.version.outputs.version }}
run: |
SEATABLE_IMAGE=${{ steps.version.outputs.image }} SEATABLE_VERSION=${{ steps.version.outputs.version }} docker compose up -d
docker compose up -d
./setup.sh

- name: Run API tests
Expand All @@ -91,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 @@ -128,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
2 changes: 1 addition & 1 deletion .github/workflows/postman.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ env:

jobs:
postman:
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/rdme-openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ jobs:
# Job 1: Publish OpenAPI specs and docs to ReadMe.com
# -----------------------------------------------------------------------
publish:
if: false # temporarily disabled
name: Publish to ReadMe
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
steps:
- name: Check out repo
uses: actions/checkout@v4
Expand Down Expand Up @@ -175,8 +176,9 @@ jobs:
# -----------------------------------------------------------------------
deploy-static:
name: Deploy static files
if: github.ref_name == github.event.repository.default_branch
runs-on: ubuntu-latest
if: false # temporarily disabled
# if: github.ref_name == github.event.repository.default_branch
runs-on: ubuntu-26.04
needs: publish
steps:
- name: Check out repo
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/version-compare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ on:

jobs:
compare:
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
steps:
- name: Check out repo
uses: actions/checkout@v4
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ cd version-compare
export SEATABLE_IMAGE=seatable/seatable-enterprise
export SEATABLE_VERSION=6.0.10

# seatable/dtable-server-go or seatable/dtable-server-js
export DTABLE_SERVER_IMAGE=seatable/dtable-server-go
export DTABLE_SERVER_VERSION=7.0.7-testing

# Create license file
cp "SOURCE" seatable-license.txt

Expand Down
2 changes: 1 addition & 1 deletion authentication.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ info:
title: Authentication
description: >-
The official SeaTable API Reference (OpenAPI 3.0).
version: "6.2"
version: "7.0"
servers:
- url: "https://{server}"
variables:
Expand Down
2 changes: 1 addition & 1 deletion base_operations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ info:
title: Base Operations
description: >-
The official SeaTable API Reference (OpenAPI 3.0).
version: "6.2"
version: "7.0"
servers:
- url: "https://{server}"
variables:
Expand Down
2 changes: 1 addition & 1 deletion file_operations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ info:
title: File Operations
description: >-
The official SeaTable API Reference (OpenAPI 3.0).
version: "6.2"
version: "7.0"
servers:
- url: "https://{server}"
variables:
Expand Down
15 changes: 12 additions & 3 deletions ping_and_info.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ info:
title: Ping and Server Info
description: >-
The official SeaTable API Reference (OpenAPI 3.0) - Part "Ping and Server Info".
version: "6.2"
version: "7.0"
servers:
- url: "https://{server}"
variables:
Expand Down Expand Up @@ -115,10 +115,14 @@ paths:
- Ping
summary: Ping dtable Server
operationId: pingDtableServer
description: >-
description: |-
Check the status of the dtable-server. Base related operations are
carried out by the dtable-server. These operations are included in the
section **Base Operations**.

> 🚧 Not exposed by default
>
> As of SeaTable 7.0, the default NGINX configuration no longer routes `/dtable-server/` and this endpoint returns `404`.
responses:
"200":
description: Service is available and running
Expand All @@ -134,7 +138,12 @@ paths:
- Ping
summary: Ping dtable-db Server
operationId: pingDtableDbServer
description: Check the status of the dtable-db server.
description: |-
Check the status of the dtable-db server.

> 🚧 Not exposed by default
>
> As of SeaTable 7.0, the default NGINX configuration no longer routes `/dtable-db/` and this endpoint returns `404`.
responses:
"200":
description: Service is available and running
Expand Down
2 changes: 1 addition & 1 deletion python-scheduler.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ info:
title: Python Scheduler
description: >-
The official SeaTable API Reference (OpenAPI 3.0).
version: "6.2"
version: "7.0"
servers:
- url: "https://{server}"
variables:
Expand Down
2 changes: 1 addition & 1 deletion system_admin_account_operations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ info:
title: "Account Operations: System admin"
description: >-
The official SeaTable API Reference (OpenAPI 3.0).
version: "6.2"
version: "7.0"
servers:
- url: "https://{server}"
variables:
Expand Down
2 changes: 1 addition & 1 deletion team_admin_account_operations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ info:
title: Account Operations - Team admin
description: >-
The official SeaTable API Reference (OpenAPI 3.0).
version: "6.2"
version: "7.0"
servers:
- url: "https://{server}"
variables:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,16 @@
"archived_row_count": "int",
"dtable_server_info": [
{
"assigned_keys_count": 0,
"backend": "",
"enable_cluster": false,
"last_dtable_saving_count": "int",
"last_period_operations_count": "int",
"loaded_dtables_count": "int",
"local_node_url": "http://dtable-server:5000",
"node_id": "",
"operation_count_since_up": "int",
"start_time": "",
"web_socket_count": "int"
}
],
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
14 changes: 0 additions & 14 deletions tests/test_ping.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,6 @@ def test_pingServerWithAuth(account_token: Secret):
assert response.status_code == 200
assert response.text.strip('"') == 'pong'

def test_pingDtableServer():
case: Case = ping_and_info_schema.find_operation_by_id('pingDtableServer').Case()
response = case.call()

assert response.status_code == 200
assert response.text.strip() == 'pong'

def test_pingDtableDbServer():
case: Case = ping_and_info_schema.find_operation_by_id('pingDtableDbServer').Case()
response = case.call()

assert response.status_code == 200
assert response.json()['ret'] == 'pong'

def test_pingApiGateway():
case: Case = ping_and_info_schema.find_operation_by_id('pingApiGateway').Case()
response = case.call()
Expand Down
2 changes: 1 addition & 1 deletion user_account_operations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ info:
title: Account Operations - User
description: >-
The official SeaTable API Reference (OpenAPI 3.0).
version: "6.2"
version: "7.0"
servers:
- url: "https://{server}"
variables:
Expand Down
Loading
Loading