aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/s3tests.yml65
1 files changed, 65 insertions, 0 deletions
diff --git a/.github/workflows/s3tests.yml b/.github/workflows/s3tests.yml
index 75f9b7437..8aac04802 100644
--- a/.github/workflows/s3tests.yml
+++ b/.github/workflows/s3tests.yml
@@ -213,6 +213,71 @@ jobs:
# Clean up data directory
rm -rf "$WEED_DATA_DIR" || true
+ - name: Run S3 Object Lock and Retention tests
+ timeout-minutes: 15
+ env:
+ S3TEST_CONF: /__w/seaweedfs/seaweedfs/docker/compose/s3tests.conf
+ shell: bash
+ run: |
+ cd /__w/seaweedfs/seaweedfs/weed
+ go install -buildvcs=false
+ set -x
+ # Create clean data directory for this test run
+ export WEED_DATA_DIR="/tmp/seaweedfs-objectlock-$(date +%s)"
+ mkdir -p "$WEED_DATA_DIR"
+ weed -v 0 server -filer -filer.maxMB=64 -s3 -ip.bind 0.0.0.0 \
+ -dir="$WEED_DATA_DIR" \
+ -master.raftHashicorp -master.electionTimeout 1s -master.volumeSizeLimitMB=1024 \
+ -volume.max=100 -volume.preStopSeconds=1 -s3.port=8000 -metricsPort=9324 \
+ -s3.allowEmptyFolder=false -s3.allowDeleteBucketNotEmpty=true -s3.config=../docker/compose/s3.json &
+ pid=$!
+ sleep 10
+ cd /s3-tests
+ sed -i "s/assert prefixes == \['foo%2B1\/', 'foo\/', 'quux%20ab\/'\]/assert prefixes == \['foo\/', 'foo%2B1\/', 'quux%20ab\/'\]/" s3tests_boto3/functional/test_s3.py
+ tox -- \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_bucket \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_enable_after_create \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_with_days_and_years \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_days \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_years \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_mode \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_lock_invalid_status \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_suspend_versioning \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_lock \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_lock_invalid_bucket \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_invalid_bucket \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_invalid_mode \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_retention \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_retention_iso8601 \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_retention_invalid_bucket \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_versionid \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_override_default_retention \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_increase_period \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_shorten_period \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_obj_retention_shorten_period_bypass \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_delete_object_with_retention \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_delete_multipart_object_with_retention \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_delete_object_with_retention_and_marker \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_multi_delete_object_with_retention \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_legal_hold \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_legal_hold_invalid_bucket \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_put_legal_hold_invalid_status \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_get_legal_hold \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_get_legal_hold_invalid_bucket \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_delete_object_with_legal_hold_on \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_delete_multipart_object_with_legal_hold_on \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_delete_object_with_legal_hold_off \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_get_obj_metadata \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_uploading_obj \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_changing_mode_from_governance_with_bypass \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_changing_mode_from_governance_without_bypass \
+ s3tests_boto3/functional/test_s3.py::test_object_lock_changing_mode_from_compliance
+ kill -9 $pid || true
+ # Clean up data directory
+ rm -rf "$WEED_DATA_DIR" || true
+
- name: Run SeaweedFS Custom S3 Copy tests
timeout-minutes: 10
shell: bash