Skip to content

Commit

Permalink
run owncloud legacy WebDAV & OCS API tests in CI (#927)
Browse files Browse the repository at this point in the history
Co-authored-by: Artur Neumann <artur@jankaritech.com>
  • Loading branch information
phil-davis and individual-it authored Jul 1, 2020
1 parent 9585aa7 commit 42747c2
Show file tree
Hide file tree
Showing 10 changed files with 228 additions and 20 deletions.
90 changes: 79 additions & 11 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ steps:
from_secret: fossa_api_key
detach: true
commands:
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa analyze
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa analyze


- name: build
Expand All @@ -61,7 +61,7 @@ steps:
FOSSA_API_KEY:
from_secret: fossa_api_key
commands:
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa test

- name: publish-docker-reva-latest
Expand Down Expand Up @@ -110,8 +110,8 @@ steps:
from_secret: fossa_api_key
detach: true
commands:
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa analyze
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa analyze

- name: build
image: golang:1.13
Expand All @@ -130,7 +130,7 @@ steps:
FOSSA_API_KEY:
from_secret: fossa_api_key
commands:
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa test

---
Expand All @@ -155,8 +155,8 @@ steps:
from_secret: fossa_api_key
detach: true
commands:
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa analyze
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa analyze

- name: build
image: golang:1.13
Expand All @@ -176,7 +176,7 @@ steps:
FOSSA_API_KEY:
from_secret: fossa_api_key
commands:
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- wget -qO- https://github.com/fossas/fossa-cli/releases/download/v1.0.11/fossa-cli_1.0.11_linux_amd64.tar.gz | tar xvz -C /go/bin/
- /go/bin/fossa test

- name: create-dist
Expand Down Expand Up @@ -241,7 +241,7 @@ steps:
image: golang:1.13
detach: true
commands:
- cd /drone/src/drone/oc-litmus/
- cd /drone/src/drone/oc-integration-tests/
- /drone/src/cmd/revad/revad -c frontend.toml &
- /drone/src/cmd/revad/revad -c gateway.toml &
- /drone/src/cmd/revad/revad -c storage-home.toml &
Expand Down Expand Up @@ -281,7 +281,7 @@ steps:
image: golang:1.13
detach: true
commands:
- cd /drone/src/drone/oc-litmus/
- cd /drone/src/drone/oc-integration-tests/
- /drone/src/cmd/revad/revad -c frontend.toml &
- /drone/src/cmd/revad/revad -c gateway.toml &
- /drone/src/cmd/revad/revad -c storage-home.toml &
Expand All @@ -295,3 +295,71 @@ steps:
LITMUS_USERNAME: einstein
LITMUS_PASSWORD: relativity
TESTS: basic http copymove props

---
kind: pipeline
type: docker
name: owncloud-integration-tests

platform:
os: linux
arch: amd64

trigger:
event:
include:
- pull_request
- tag

steps:
- name: build
image: golang:1.13
commands:
- make build-ci

- name: revad-services
image: golang:1.13
detach: true
commands:
- cd /drone/src/drone/oc-integration-tests/
- /drone/src/cmd/revad/revad -c frontend.toml &
- /drone/src/cmd/revad/revad -c gateway.toml &
- /drone/src/cmd/revad/revad -c shares.toml &
- /drone/src/cmd/revad/revad -c storage-home.toml &
- /drone/src/cmd/revad/revad -c storage-oc.toml &
- /drone/src/cmd/revad/revad -c storage-publiclink.toml &
- /drone/src/cmd/revad/revad -c ldap-users.toml

- name: oC10APIAcceptanceTests
image: owncloudci/php:7.2
commands:
- git clone -b master --depth=1 https://github.com/owncloud/testing.git /drone/src/tmp/testing
- git clone -b master --single-branch --no-tags https://github.com/owncloud/core.git /drone/src/tmp/testrunner
- cd /drone/src/tmp/testrunner
- git checkout a3cac3dad60348fc962d1d8743b202bc5f79596b
- make test-acceptance-api
environment:
TEST_SERVER_URL: 'http://revad-services:20080'
OCIS_REVA_DATA_ROOT: '/drone/src/tmp/reva/'
SKELETON_DIR: '/drone/src/tmp/testing/data/apiSkeleton'
TEST_EXTERNAL_USER_BACKENDS: 'true'
REVA_LDAP_HOSTNAME: 'ldap'
TEST_OCIS: 'true'
BEHAT_FILTER_TAGS: '~@skipOnOcis&&~@skipOnOcis-OC-Storage'

services:
- 'name': 'ldap'
'image': 'osixia/openldap:1.3.0'
'pull': 'always'
'environment':
LDAP_DOMAIN: 'owncloud.com'
LDAP_ORGANISATION: 'ownCloud'
LDAP_ADMIN_PASSWORD: 'admin'
LDAP_TLS_VERIFY_CLIENT: 'never'
HOSTNAME: 'ldap'

- name: redis
image: webhippie/redis
'pull': 'always'
'environment':
REDIS_DATABASES: 1
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ allow_credentials = true
[http.services.ocdav]
# serve ocdav on the root path
prefix = ""
chunk_folder = "/var/tmp/reva/chunks"
chunk_folder = "/drone/src/tmp/reva/chunks"
# for user lookups
# prefix the path of requests to /dav/files with this namespace
# While owncloud has only listed usernames at this endpoint CERN has
Expand Down Expand Up @@ -61,3 +61,50 @@ files_namespace = "/oc"
webdav_namespace = "/home"

[http.services.ocs]

[http.services.ocs.capabilities.capabilities.core.status]
version = "10.0.11.5"
versionstring = "10.0.11"

[http.services.ocs.capabilities.capabilities.files_sharing]
api_enabled = true
resharing = true
group_sharing = true
auto_accept_share = true
share_with_group_members_only = true
share_with_membership_groups_only = true
default_permissions = 22
search_min_length = 3

[http.services.ocs.capabilities.capabilities.files_sharing.public]
enabled = true
send_mail = true
social_share = true
upload = true
multiple = true
supports_upload_only = true

[http.services.ocs.capabilities.capabilities.files_sharing.public.password]
enforced = true

[http.services.ocs.capabilities.capabilities.files_sharing.public.password.enforced_for]
read_only = true
read_write = true
upload_only = true

[http.services.ocs.capabilities.capabilities.files_sharing.public.expire_date]
enabled = true

[http.services.ocs.capabilities.capabilities.files_sharing.user]
send_mail = true

[http.services.ocs.capabilities.capabilities.files_sharing.user_enumeration]
enabled = true
group_members_only = true

[http.services.ocs.capabilities.capabilities.files_sharing.federation]
outgoing = true
incoming = true

[http.services.ocs.capabilities.capabilities.notifications]
endpoints = ["disable"]
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,13 @@ datagateway = "http://localhost:19001/data"
transfer_shared_secret = "replace-me-with-a-transfer-secret" # for direct uploads
transfer_expires = 6 # give it a moment
#disable_home_creation_on_login = true
link_grants_file = "/drone/src/tmp/reva/link_grants_file.json"

[grpc.services.authregistry]
driver = "static"

[grpc.services.authregistry.drivers.static.rules]
publicshares = "localhost:17000" # started with the shares.toml
basic = "localhost:18000" # started with the users.toml
bearer = "localhost:20099" # started with the frontend.toml

Expand All @@ -56,7 +58,9 @@ home_provider = "/home"
# mount a storage provider without a path wrapper for direct access to users.
"/oc" = "localhost:11000"
"123e4567-e89b-12d3-a456-426655440000" = "localhost:11000"
# another mount point might be "/projects/"
# another mount point might be "/projects/"

"/public" = "localhost:13000"

[http]
address = "0.0.0.0:19001"
Expand Down
45 changes: 45 additions & 0 deletions drone/oc-integration-tests/ldap-users.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
[shared]
jwt_secret = "Pive-Fumkiu4"

# This users.toml config file will start a reva service that:
# - handles user metadata and user preferences
# - serves the grpc services on port 18000
[grpc]
address = "0.0.0.0:18000"

[grpc.services.authprovider]
auth_manager = "ldap"

[grpc.services.authprovider.auth_managers.ldap]
hostname="ldap"
port=636
base_dn="dc=owncloud,dc=com"
userfilter="(&(objectclass=posixAccount)(cn=%s*))"
groupfilter="(&(objectclass=posixGroup)(cn=%s*))"
bind_username="cn=admin,dc=owncloud,dc=com"
bind_password="admin"
idp="http://localhost:18000"
[grpc.services.authprovider.auth_managers.ldap.schema]
uid="uid"
displayName="displayName"
dn="dn"
cn="cn"

[grpc.services.userprovider]
driver = "ldap"

[grpc.services.userprovider.drivers.ldap]
hostname="ldap"
port=636
base_dn="dc=owncloud,dc=com"
userfilter="(&(objectclass=posixAccount)(cn=%s*))"
groupfilter="(&(objectclass=posixGroup)(cn=%s*))"
bind_username="cn=admin,dc=owncloud,dc=com"
bind_password="admin"
idp="http://localhost:18000"

[grpc.services.userprovider.drivers.ldap.schema]
uid="uid"
displayName="displayName"
dn="dn"
cn="cn"
19 changes: 19 additions & 0 deletions drone/oc-integration-tests/shares.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[shared]
jwt_secret = "Pive-Fumkiu4"

# GRPC:
# - serves user and public link shares
[grpc]
address = "0.0.0.0:17000"

[grpc.services.usershareprovider]
driver = "memory"

[grpc.services.authprovider]
auth_manager = "publicshares"

[grpc.services.authprovider.auth_managers.publicshares]
gateway_addr = "0.0.0.0:19000"

[grpc.services.publicshareprovider.drivers.json]
file = "/drone/src/tmp/reva/publicshares.json"
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,19 @@ data_server_url = "http://localhost:12001/data"
enable_home_creation = true

[grpc.services.storageprovider.drivers.owncloud]
datadirectory = "/var/tmp/reva/data"
datadirectory = "/drone/src/tmp/reva/data"
enable_home = true
redis = "redis:6379"


[http]
address = "0.0.0.0:12001"

[http.services.dataprovider]
driver = "owncloud"
temp_folder = "/var/tmp/reva/tmp"
temp_folder = "/drone/src/tmp/reva/tmp"

[http.services.dataprovider.drivers.owncloud]
datadirectory = "/var/tmp/reva/data"
datadirectory = "/drone/src/tmp/reva/data"
enable_home = true
redis = "redis:6379"
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,16 @@ expose_data_server = true
data_server_url = "http://localhost:11001/data"

[grpc.services.storageprovider.drivers.owncloud]
datadirectory = "/var/tmp/reva/data"

datadirectory = "/drone/src/tmp/reva/data"
redis = "redis:6379"

[http]
address = "0.0.0.0:11001"

[http.services.dataprovider]
driver = "owncloud"
temp_folder = "/var/tmp/reva/tmp"
temp_folder = "/drone/src/tmp/reva/tmp"

[http.services.dataprovider.drivers.owncloud]
datadirectory = "/var/tmp/reva/data"
datadirectory = "/drone/src/tmp/reva/data"
redis = "redis:6379"
22 changes: 22 additions & 0 deletions drone/oc-integration-tests/storage-publiclink.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# This storage.toml config file will start a reva service that:
[shared]
jwt_secret = "Pive-Fumkiu4"
gatewaysvc = "localhost:19000"

[grpc]
address = "0.0.0.0:13000"

# This is a storage provider that grants direct access to the wrapped storage
# we have a locally running dataprovider
[grpc.services.publicstorageprovider]
driver = "owncloud"
mount_path = "/public/"
mount_id = "e1a73ede-549b-4226-abdf-40e69ca8230d"
expose_data_server = true
data_server_url = "http://localhost:13001/data"
gateway_addr = "0.0.0.0:19000"
enable_home_creation = true

[grpc.services.publicstorageprovider.drivers.owncloud]
datadirectory = "/drone/src/tmp/reva/data"
enable_home = true
File renamed without changes.
File renamed without changes.

0 comments on commit 42747c2

Please sign in to comment.