diff --git a/.drone.star b/.drone.star
index d74f0caf9c8..9d31aa8f7a8 100644
--- a/.drone.star
+++ b/.drone.star
@@ -1,2284 +1,2311 @@
config = {
- 'app': 'web',
- 'rocketchat': {
- 'channel': 'builds',
- 'from_secret': 'private_rocketchat'
- },
-
- 'branches': [
- 'master',
- 'release*',
- 'develop*'
- ],
-
- 'yarnlint': True,
-
- 'acceptance': {
- 'webUI': {
- 'suites': {
- 'webUIBasic': [
- 'webUIAccount',
- 'webUILogin',
- 'webUIPreview',
- 'webUIPrivateLinks',
- # The following suites may have all scenarios currently skipped.
- # The suites are listed here so that scenarios will run when
- # they are enabled.
- 'webUIAdminSettings',
- 'webUIComments',
- 'webUITags',
- 'webUIWebdavLockProtection',
- 'webUIWebdavLocks',
- ],
- 'webUICreate': [
- 'webUICreateFilesFolders',
- ],
- 'webUIDelete': [
- 'webUIDeleteFilesFolders',
- ],
- 'webUIRename': [
- 'webUIRenameFiles',
- 'webUIRenameFolders',
- ],
- 'webUISharingBasic': [
- 'webUISharingAcceptShares',
- 'webUISharingAcceptSharesToRoot',
- ],
- 'webUIFavorites': 'Favorites',
- 'webUIMarkdownEditor': 'MarkdownEditor',
- 'webUIFiles1': [
- 'webUIFiles',
- 'webUIFilesActionMenu',
- 'webUIFilesCopy'
- ],
- 'webUIFiles2': [
- 'webUIFilesDetails',
- 'webUIFilesList',
- 'webUIFilesSearch'
- ],
- 'webUIMoveFilesFolders': 'Move',
- 'webUIResharing': [
- 'webUIResharing1',
- 'webUIResharing2'
- ],
- 'webUIResharingToRoot': 'ResharingToRoot',
- 'webUIRestrictSharing': 'RestrictSharing',
- 'webUISharingAutocompletion': 'SharingAutocompletion',
- 'webUISharingFilePermissionMultipleUsers': 'SharingFilePermissionMultipleUsers',
- 'webUISharingFilePermissionsGroups': 'SharingFilePermissionsGroups',
- 'webUISharingFolderAdvancedPermissionMultipleUsers': 'SharingFolderAdvancedPermissionMU',
- 'webUISharingFolderAdvancedPermissionsGroups': 'SharingFolderAdvPermissionsGrp',
- 'webUISharingFolderPermissionMultipleUsers': 'SharingFolderPermissionMultipleUsers',
- 'webUISharingFolderPermissionsGroups': 'SharingFolderPermissionsGroups',
- 'webUISharingInternalGroups': 'SharingInternalGroups',
- 'webUISharingInternalGroupsEdgeCases': 'SharingInternalGroupsEdgeCases',
- 'webUISharingInternalGroupsSharingIndicator': 'SharingInternalGroupsSharingIndicator',
- 'webUISharingInternalGroupsToRoot': 'SharingInternalGroupsRoot',
- 'webUISharingInternalGroupsToRootEdgeCases': 'SharingInternalGroupsRootEdgeCases',
- 'webUISharingInternalGroupsToRootSharingIndicator': 'SharingInternalGroupsRootSharingIndicator',
- 'webUISharingInternalUsers': [
- 'webUISharingInternalUsers',
- 'webUISharingInternalUsersCollaborator',
- 'webUISharingInternalUsersShareWithPage'
- ],
- 'webUISharingInternalUsersBlacklisted': 'SharingInternalUsersBlacklisted',
- 'webUISharingInternalUsersExpire': 'SharingInternalUsersExpire',
- 'webUISharingInternalUsersExpireToRoot': 'SharingInternalUsersExpireToRoot',
- 'webUISharingInternalUsersSharingIndicator': 'SharingInternalUsersSharingIndicator',
- 'webUISharingInternalUsersToRoot': 'webUISharingInternalUsersRoot1',
- 'webUISharingInternalUsersRoot2': [
- 'webUISharingInternalUsersToRootCollaborator',
- 'webUISharingInternalUsersToRootPreviews',
- 'webUISharingInternalUsersToRootShareWithPage'
- ],
- 'webUISharingInternalUsersToRootBlacklisted': 'SharingInternalUsersRootBlacklisted',
- 'webUISharingInternalUsersToRootSharingIndicator': 'SharingInternalUsersRootSharingIndicator',
- 'webUISharingPermissionsUsers': 'SharingPermissionsUsers',
- 'webUISharingPermissionToRoot': 'SharingPermissionToRoot',
- 'webUISharingPublicBasic': 'SharingPublicBasic',
- 'webUISharingPublicManagement': 'SharingPublicManagement',
- 'webUISharingPublicDifferentRoles': 'SharingPublicDifferentRoles',
- 'webUISharingPublicExpire': 'SharingPublicExpire',
- 'webUITrashbinDelete': 'TrashbinDelete',
- 'webUITrashbinFilesFolders': 'TrashbinFilesFolders',
- 'webUITrashbinRestore': 'TrashbinRestore',
- 'webUIUpload': 'Upload',
- },
- 'extraEnvironment': {
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login.md',
- 'WEB_UI_CONFIG': '/var/www/owncloud/web/dist/config.json'
- },
- 'visualTesting': True,
- 'screenShots': True
- },
- 'webUINotification': {
- 'suites': {
- 'webUINotificationBasic': [
- 'webUINotifications'
- ],
- 'webUISharingNotifications': [
- 'webUISharingNotifications',
- 'webUISharingNotificationsToRoot',
- ],
- },
- 'extraEnvironment': {
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login.md',
- 'WEB_UI_CONFIG': '/var/www/owncloud/web/dist/config.json'
- },
- 'visualTesting': True,
- 'screenShots': True,
- 'notificationsAppNeeded': True
- },
- 'webUIFederation': {
- 'suites': {
- 'webUISharingExternal': 'SharingExternal',
- 'webUISharingExternalToRoot': 'SharingExternalRoot',
- },
- 'extraEnvironment': {
- 'REMOTE_BACKEND_HOST': 'http://federated',
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login.md'
- },
- 'notificationsAppNeeded': True,
- 'federatedServerNeeded': True,
- 'federatedServerVersion': 'daily-master-qa'
- },
- 'webUI-XGA-Notifications': {
- 'suites': {
- 'XGAPortrait1-Notifications': [
- 'webUINotifications',
- 'webUISharingNotifications',
- 'webUISharingNotificationsToRoot'
- ]
- },
- 'extraEnvironment': {
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-XGA-with-oc10-server-oauth2-login.md',
- 'SCREEN_RESOLUTION': '768x1024'
- },
- 'notificationsAppNeeded': True,
- 'filterTags': '@smokeTest and not @skipOnXGAPortraitResolution and not @skip and not @skipOnOC10'
- },
- 'webUI-XGA': {
- 'suites': {
- 'XGAPortrait1': [
- 'webUIAccount',
- 'webUICreateFilesFolders',
- 'webUIDeleteFilesFolders',
- 'webUIFavorites',
- 'webUIFiles',
- 'webUIFilesActionMenu',
- 'webUIFilesCopy',
- 'webUIFilesDetails',
- 'webUIFilesList',
- 'webUIFilesSearch',
- 'webUILogin',
- 'webUIPreview',
- 'webUIPrivateLinks',
- 'webUIRenameFiles',
- 'webUIRenameFolders',
- 'webUIRestrictSharing',
- 'webUISharingAcceptShares',
- 'webUISharingAcceptSharesToRoot',
- # The following suites may have all scenarios currently skipped.
- # The suites are listed here so that scenarios will run when
- # they are enabled.
- 'webUIAdminSettings',
- 'webUIComments',
- 'webUITags',
- 'webUIWebdavLockProtection',
- 'webUIWebdavLocks',
- ],
- 'XGAPortrait2': [
- 'webUIMoveFilesFolders',
- 'webUIResharing1',
- 'webUIResharing2',
- 'webUIResharingToRoot',
- 'webUISharingAutocompletion',
- 'webUISharingFilePermissionMultipleUsers',
- 'webUISharingFilePermissionsGroups',
- 'webUISharingFolderAdvancedPermissionMultipleUsers',
- 'webUISharingFolderAdvancedPermissionsGroups',
- 'webUISharingFolderPermissionMultipleUsers',
- 'webUISharingFolderPermissionsGroups',
- 'webUISharingInternalGroups',
- 'webUISharingInternalGroupsEdgeCases',
- 'webUISharingInternalGroupsSharingIndicator',
- 'webUISharingInternalGroupsToRoot',
- 'webUISharingInternalGroupsToRootEdgeCases',
- 'webUISharingInternalGroupsToRootSharingIndicator',
- 'webUISharingInternalUsers',
- 'webUISharingInternalUsersCollaborator',
- 'webUISharingInternalUsersShareWithPage',
- 'webUISharingInternalUsersBlacklisted',
- 'webUISharingInternalUsersExpire',
- 'webUISharingInternalUsersExpireToRoot',
- 'webUISharingInternalUsersSharingIndicator',
- 'webUISharingInternalUsersToRoot',
- 'webUISharingInternalUsersToRootCollaborator',
- 'webUISharingInternalUsersToRootPreviews',
- 'webUISharingInternalUsersToRootShareWithPage',
- 'webUISharingInternalUsersToRootBlacklisted',
- 'webUISharingInternalUsersToRootSharingIndicator',
- 'webUISharingPermissionsUsers',
- 'webUISharingPermissionToRoot',
- 'webUISharingPublicBasic',
- 'webUISharingPublicManagement',
- 'webUISharingPublicDifferentRoles',
- 'webUISharingPublicExpire',
- 'webUITrashbinDelete',
- 'webUITrashbinFilesFolders',
- 'webUITrashbinRestore',
- 'webUIUpload',
- ]
- },
- 'extraEnvironment': {
- 'SCREEN_RESOLUTION': '768x1024'
- },
- 'filterTags': '@smokeTest and not @skipOnXGAPortraitResolution and not @skip and not @skipOnOC10'
- },
- 'webUI-Notifications-iPhone': {
- 'suites': {
- 'iPhone1-Notifications': [
- 'webUINotifications',
- 'webUISharingNotifications',
- 'webUISharingNotificationsToRoot'
- ]
- },
- 'extraEnvironment': {
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-Iphone-oc10-server-oauth2-login.md',
- 'SCREEN_RESOLUTION': '375x812'
- },
- 'notificationsAppNeeded': True,
- 'filterTags': '@smokeTest and not @skipOnIphoneResolution and not @skip and not @skipOnOC10'
- },
- 'webUI-iPhone': {
- 'suites': {
- 'iPhone1': [
- 'webUIAccount',
- 'webUICreateFilesFolders',
- 'webUIDeleteFilesFolders',
- 'webUIFavorites',
- 'webUIFiles',
- 'webUIFilesActionMenu',
- 'webUIFilesCopy',
- 'webUIFilesDetails',
- 'webUIFilesList',
- 'webUIFilesSearch',
- 'webUILogin',
- 'webUIPreview',
- 'webUIPrivateLinks',
- 'webUIRenameFiles',
- 'webUIRenameFolders',
- 'webUIRestrictSharing',
- 'webUISharingAcceptShares',
- 'webUISharingAcceptSharesToRoot',
- # The following suites may have all scenarios currently skipped.
- # The suites are listed here so that scenarios will run when
- # they are enabled.
- 'webUIAdminSettings',
- 'webUIComments',
- 'webUITags',
- 'webUIWebdavLockProtection',
- 'webUIWebdavLocks',
- ],
- 'iPhone2': [
- 'webUIMoveFilesFolders',
- 'webUIResharing1',
- 'webUIResharing2',
- 'webUIResharingToRoot',
- 'webUISharingAutocompletion',
- 'webUISharingFilePermissionMultipleUsers',
- 'webUISharingFilePermissionsGroups',
- 'webUISharingFolderAdvancedPermissionMultipleUsers',
- 'webUISharingFolderAdvancedPermissionsGroups',
- 'webUISharingFolderPermissionMultipleUsers',
- 'webUISharingFolderPermissionsGroups',
- 'webUISharingInternalGroups',
- 'webUISharingInternalGroupsEdgeCases',
- 'webUISharingInternalGroupsSharingIndicator',
- 'webUISharingInternalGroupsToRoot',
- 'webUISharingInternalGroupsToRootEdgeCases',
- 'webUISharingInternalGroupsToRootSharingIndicator',
- 'webUISharingInternalUsers',
- 'webUISharingInternalUsersExpire',
- 'webUISharingInternalUsersCollaborator',
- 'webUISharingInternalUsersShareWithPage',
- 'webUISharingInternalUsersSharingIndicator',
- 'webUISharingInternalUsersToRootCollaborator',
- 'webUISharingInternalUsersToRootPreviews',
- 'webUISharingInternalUsersToRootShareWithPage',
- 'webUISharingInternalUsersToRootSharingIndicator',
- 'webUISharingInternalUsersExpireToRoot',
- 'webUISharingInternalUsersToRoot',
- 'webUISharingInternalUsersToRootBlacklisted',
- 'webUISharingPermissionsUsers',
- 'webUISharingPermissionToRoot',
- 'webUISharingPublicBasic',
- 'webUISharingPublicManagement',
- 'webUISharingPublicDifferentRoles',
- 'webUISharingPublicExpire',
- 'webUITrashbinDelete',
- 'webUITrashbinFilesFolders',
- 'webUITrashbinRestore',
- 'webUIUpload',
- ]
- },
- 'extraEnvironment': {
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-Iphone-oc10-server-oauth2-login.md',
- 'SCREEN_RESOLUTION': '375x812'
- },
- 'filterTags': '@smokeTest and not @skipOnIphoneResolution and not @skip and not @skipOnOC10'
- },
- 'webUI-ocis': {
- 'suites': {
- 'webUIOCISBasic': [
- 'webUILogin',
- 'webUINotifications',
- 'webUIPrivateLinks',
- 'webUIPreview',
- 'webUIAccount',
- # The following suites may have all scenarios currently skipped.
- # The suites are listed here so that scenarios will run when
- # they are enabled.
- 'webUIAdminSettings',
- 'webUIComments',
- 'webUITags',
- 'webUIWebdavLockProtection',
- 'webUIWebdavLocks',
- ],
- 'webUIOCISCreate': [
- 'webUICreateFilesFolders',
- ],
- 'webUIOCISDelete': [
- 'webUIDeleteFilesFolders',
- ],
- 'webUIOCISRename': [
- 'webUIRenameFiles',
- 'webUIRenameFolders',
- ],
- 'webUIOCISSharingBasic': [
- 'webUISharingAcceptShares'
- ],
- 'webUIOCISRestrictSharing': [
- 'webUIRestrictSharing',
- ],
- 'webUIOCISSharingNotifications': [
- 'webUISharingNotifications'
- ],
- 'webUIFavorites': 'OCISFavorites',
- 'webUIMarkdownEditor': 'OCISMarkdownEditor',
- 'webUIOCISFiles1': [
- 'webUIFiles',
- 'webUIFilesActionMenu',
- 'webUIFilesCopy'
- ],
- 'webUIOCISFiles2': [
- 'webUIFilesDetails',
- 'webUIFilesSearch'
- ],
- 'webUIOCISFiles3': [
- 'webUIFilesList',
- ],
- 'webUISharingAutocompletion': 'OCISSharingAutocompletion',
- 'OCISSharingInternalGroups': [
- 'webUISharingInternalGroups',
- 'webUISharingInternalGroupsEdgeCases',
- 'webUISharingInternalGroupsSharingIndicator'
- ],
- 'OCISSharingInternalUsers1': [
- 'webUISharingInternalUsers',
- ],
- 'OCISSharingInternalUsers2': [
- 'webUISharingInternalUsersBlacklisted',
- 'webUISharingInternalUsersCollaborator',
- 'webUISharingInternalUsersShareWithPage',
- 'webUISharingInternalUsersSharingIndicator'
- ],
- 'webUISharingInternalUsersExpire': 'OCISSharingInternalUsersExpire',
- 'webUISharingPermissionsUsers': 'OCISSharingPermissionsUsers',
- 'webUISharingFilePermissionsGroups': 'OCISSharingFilePermissionsGroups',
- 'webUISharingFolderPermissionsGroups': 'OCISSharingFolderPermissionsGroups',
- 'webUISharingFolderAdvancedPermissionsGroups': 'OCISSharingFolderAdvPermissionsGrp',
- # for now run this suite by itself see https://github.com/owncloud/ocis/issues/736
- 'OCISResharing1': [
- 'webUIResharing1'
- ],
- 'OCISResharing2': [
- 'webUIResharing2'
- ],
- 'webUISharingPublicBasic': 'OCISSharingPublicBasic',
- 'webUISharingPublicManagement': 'OCISSharingPublicManagement',
- 'webUISharingPublicExpire': 'OCISSharingPublicExpire',
- 'webUISharingPublicDifferentRoles': 'OCISSharingPublicDifferentRoles',
- 'webUITrashbinDelete': 'OCISTrashbinDelete',
- 'webUITrashbinFilesFolders': 'OCISTrashbinFilesFolders',
- 'webUITrashbinRestore': 'OCISTrashbinRestore',
- 'webUIUpload': 'OCISUpload',
- 'webUISharingFilePermissionMultipleUsers': 'OCISSharingFilePermissionMultipleUsers',
- 'webUISharingFolderPermissionMultipleUsers': 'OCISSharingFolderPermissionMultipleUsers',
- 'webUISharingFolderAdvancedPermissionMultipleUsers': 'OCISSharingFolderAdvancedPermissionMU',
- 'webUIMoveFilesFolders': 'OCISMove',
- 'webUIUserJourney' : 'OCISJourney'
- },
- 'extraEnvironment': {
- 'NODE_TLS_REJECT_UNAUTHORIZED': '0',
- 'SERVER_HOST': 'https://ocis:9200',
- 'BACKEND_HOST': 'https://ocis:9200',
- 'RUN_ON_OCIS': 'true',
- 'TESTING_DATA_DIR': '/srv/app/testing/data/',
- 'OCIS_REVA_DATA_ROOT': '/srv/app/tmp/ocis/owncloud/data/',
- 'WEB_UI_CONFIG': '/srv/config/drone/ocis-config.json',
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-with-ocis-server-owncloud-storage.md'
- },
- 'runningOnOCIS': True,
- 'visualTesting': True,
- 'filterTags': 'not @skip and not @skipOnOCIS and not @notToImplementOnOCIS',
- },
- 'webUI-notifications-oc10-integration': {
- 'suites': {
- 'oc10-integration-notifications': [
- 'webUINotifications',
- 'webUISharingNotifications',
- 'webUISharingNotificationsToRoot'
- ]
- },
- 'extraEnvironment': {
- 'WEB_UI_CONFIG': '/srv/config/drone/config-oc10-integration-app-oauth.json',
- 'SERVER_HOST': 'http://owncloud/index.php/apps/web/index.html',
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login-and-web-integration-app.md'
- },
- 'filterTags': 'not @skip and not @skipOnOC10 and not @openIdLogin and @smokeTest',
- 'oc10IntegrationAppIncluded': True,
- 'notificationsAppNeeded': True,
- 'screenShots': True
- },
- 'webUI-oc10-integration': {
- 'suites': {
- 'IntegrationApp1': [
- 'webUIAccount',
- 'webUICreateFilesFolders',
- 'webUIDeleteFilesFolders',
- 'webUIFavorites',
- 'webUIFiles',
- 'webUIFilesActionMenu',
- 'webUIFilesCopy',
- 'webUIFilesDetails',
- 'webUIFilesList',
- 'webUIFilesSearch',
- 'webUILogin',
- 'webUIPreview',
- 'webUIPrivateLinks',
- 'webUIRenameFiles',
- 'webUIRenameFolders',
- 'webUIRestrictSharing',
- 'webUISharingAcceptShares',
- 'webUISharingAcceptSharesToRoot',
- # The following suites may have all scenarios currently skipped.
- # The suites are listed here so that scenarios will run when
- # they are enabled.
- 'webUIAdminSettings',
- 'webUIComments',
- 'webUITags',
- 'webUIWebdavLockProtection',
- 'webUIWebdavLocks',
- ],
- 'IntegrationApp2': [
- 'webUIMoveFilesFolders',
- 'webUIResharing1',
- 'webUIResharing2',
- 'webUIResharingToRoot',
- 'webUISharingAutocompletion',
- 'webUISharingFilePermissionMultipleUsers',
- 'webUISharingFilePermissionsGroups',
- 'webUISharingFolderAdvancedPermissionMultipleUsers',
- 'webUISharingFolderAdvancedPermissionsGroups',
- 'webUISharingFolderPermissionMultipleUsers',
- 'webUISharingFolderPermissionsGroups',
- 'webUISharingInternalGroups',
- 'webUISharingInternalGroupsEdgeCases',
- 'webUISharingInternalGroupsSharingIndicator',
- 'webUISharingInternalGroupsToRoot',
- 'webUISharingInternalGroupsToRootEdgeCases',
- 'webUISharingInternalGroupsToRootSharingIndicator',
- 'webUISharingInternalUsers',
- 'webUISharingInternalUsersExpire',
- 'webUISharingInternalUsersCollaborator',
- 'webUISharingInternalUsersShareWithPage',
- 'webUISharingInternalUsersSharingIndicator',
- 'webUISharingInternalUsersToRootCollaborator',
- 'webUISharingInternalUsersToRootPreviews',
- 'webUISharingInternalUsersToRootShareWithPage',
- 'webUISharingInternalUsersToRootSharingIndicator',
- 'webUISharingInternalUsersExpireToRoot',
- 'webUISharingInternalUsersToRoot',
- 'webUISharingInternalUsersToRootBlacklisted',
- 'webUISharingPermissionsUsers',
- 'webUISharingPermissionToRoot',
- 'webUISharingPublicBasic',
- 'webUISharingPublicManagement',
- 'webUISharingPublicDifferentRoles',
- 'webUISharingPublicExpire',
- 'webUITrashbinDelete',
- 'webUITrashbinFilesFolders',
- 'webUITrashbinRestore',
- 'webUIUpload',
- ]
- },
- 'extraEnvironment': {
- 'WEB_UI_CONFIG': '/srv/config/drone/config-oc10-integration-app-oauth.json',
- 'SERVER_HOST': 'http://owncloud/index.php/apps/web/index.html',
- 'EXPECTED_FAILURES_FILE': '/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login-and-web-integration-app.md'
- },
- 'filterTags': 'not @skip and not @skipOnOC10 and not @openIdLogin and @smokeTest',
- 'oc10IntegrationAppIncluded': True,
- 'screenShots': True
- }
- },
-
- 'build': True
+ "app": "web",
+ "rocketchat": {
+ "channel": "builds",
+ "from_secret": "private_rocketchat",
+ },
+ "branches": [
+ "master",
+ "release*",
+ "develop*",
+ ],
+ "yarnlint": True,
+ "acceptance": {
+ "webUI": {
+ "suites": {
+ "webUIBasic": [
+ "webUIAccount",
+ "webUILogin",
+ "webUIPreview",
+ "webUIPrivateLinks",
+ # The following suites may have all scenarios currently skipped.
+ # The suites are listed here so that scenarios will run when
+ # they are enabled.
+ "webUIAdminSettings",
+ "webUIComments",
+ "webUITags",
+ "webUIWebdavLockProtection",
+ "webUIWebdavLocks",
+ ],
+ "webUICreate": [
+ "webUICreateFilesFolders",
+ ],
+ "webUIDelete": [
+ "webUIDeleteFilesFolders",
+ ],
+ "webUIRename": [
+ "webUIRenameFiles",
+ "webUIRenameFolders",
+ ],
+ "webUISharingBasic": [
+ "webUISharingAcceptShares",
+ "webUISharingAcceptSharesToRoot",
+ ],
+ "webUIFavorites": "Favorites",
+ "webUIMarkdownEditor": "MarkdownEditor",
+ "webUIFiles1": [
+ "webUIFiles",
+ "webUIFilesActionMenu",
+ "webUIFilesCopy",
+ ],
+ "webUIFiles2": [
+ "webUIFilesDetails",
+ "webUIFilesList",
+ "webUIFilesSearch",
+ ],
+ "webUIMoveFilesFolders": "Move",
+ "webUIResharing": [
+ "webUIResharing1",
+ "webUIResharing2",
+ ],
+ "webUIResharingToRoot": "ResharingToRoot",
+ "webUIRestrictSharing": "RestrictSharing",
+ "webUISharingAutocompletion": "SharingAutocompletion",
+ "webUISharingFilePermissionMultipleUsers": "SharingFilePermissionMultipleUsers",
+ "webUISharingFilePermissionsGroups": "SharingFilePermissionsGroups",
+ "webUISharingFolderAdvancedPermissionMultipleUsers": "SharingFolderAdvancedPermissionMU",
+ "webUISharingFolderAdvancedPermissionsGroups": "SharingFolderAdvPermissionsGrp",
+ "webUISharingFolderPermissionMultipleUsers": "SharingFolderPermissionMultipleUsers",
+ "webUISharingFolderPermissionsGroups": "SharingFolderPermissionsGroups",
+ "webUISharingInternalGroups": "SharingInternalGroups",
+ "webUISharingInternalGroupsEdgeCases": "SharingInternalGroupsEdgeCases",
+ "webUISharingInternalGroupsSharingIndicator": "SharingInternalGroupsSharingIndicator",
+ "webUISharingInternalGroupsToRoot": "SharingInternalGroupsRoot",
+ "webUISharingInternalGroupsToRootEdgeCases": "SharingInternalGroupsRootEdgeCases",
+ "webUISharingInternalGroupsToRootSharingIndicator": "SharingInternalGroupsRootSharingIndicator",
+ "webUISharingInternalUsers": [
+ "webUISharingInternalUsers",
+ "webUISharingInternalUsersCollaborator",
+ "webUISharingInternalUsersShareWithPage",
+ ],
+ "webUISharingInternalUsersBlacklisted": "SharingInternalUsersBlacklisted",
+ "webUISharingInternalUsersExpire": "SharingInternalUsersExpire",
+ "webUISharingInternalUsersExpireToRoot": "SharingInternalUsersExpireToRoot",
+ "webUISharingInternalUsersSharingIndicator": "SharingInternalUsersSharingIndicator",
+ "webUISharingInternalUsersToRoot": "webUISharingInternalUsersRoot1",
+ "webUISharingInternalUsersRoot2": [
+ "webUISharingInternalUsersToRootCollaborator",
+ "webUISharingInternalUsersToRootPreviews",
+ "webUISharingInternalUsersToRootShareWithPage",
+ ],
+ "webUISharingInternalUsersToRootBlacklisted": "SharingInternalUsersRootBlacklisted",
+ "webUISharingInternalUsersToRootSharingIndicator": "SharingInternalUsersRootSharingIndicator",
+ "webUISharingPermissionsUsers": "SharingPermissionsUsers",
+ "webUISharingPermissionToRoot": "SharingPermissionToRoot",
+ "webUISharingPublicBasic": "SharingPublicBasic",
+ "webUISharingPublicManagement": "SharingPublicManagement",
+ "webUISharingPublicDifferentRoles": "SharingPublicDifferentRoles",
+ "webUISharingPublicExpire": "SharingPublicExpire",
+ "webUITrashbinDelete": "TrashbinDelete",
+ "webUITrashbinFilesFolders": "TrashbinFilesFolders",
+ "webUITrashbinRestore": "TrashbinRestore",
+ "webUIUpload": "Upload",
+ },
+ "extraEnvironment": {
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login.md",
+ "WEB_UI_CONFIG": "/var/www/owncloud/web/dist/config.json",
+ },
+ "visualTesting": True,
+ "screenShots": True,
+ },
+ "webUINotification": {
+ "suites": {
+ "webUINotificationBasic": [
+ "webUINotifications",
+ ],
+ "webUISharingNotifications": [
+ "webUISharingNotifications",
+ "webUISharingNotificationsToRoot",
+ ],
+ },
+ "extraEnvironment": {
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login.md",
+ "WEB_UI_CONFIG": "/var/www/owncloud/web/dist/config.json",
+ },
+ "visualTesting": True,
+ "screenShots": True,
+ "notificationsAppNeeded": True,
+ },
+ "webUIFederation": {
+ "suites": {
+ "webUISharingExternal": "SharingExternal",
+ "webUISharingExternalToRoot": "SharingExternalRoot",
+ },
+ "extraEnvironment": {
+ "REMOTE_BACKEND_HOST": "http://federated",
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login.md",
+ },
+ "notificationsAppNeeded": True,
+ "federatedServerNeeded": True,
+ "federatedServerVersion": "daily-master-qa",
+ },
+ "webUI-XGA-Notifications": {
+ "suites": {
+ "XGAPortrait1-Notifications": [
+ "webUINotifications",
+ "webUISharingNotifications",
+ "webUISharingNotificationsToRoot",
+ ],
+ },
+ "extraEnvironment": {
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-XGA-with-oc10-server-oauth2-login.md",
+ "SCREEN_RESOLUTION": "768x1024",
+ },
+ "notificationsAppNeeded": True,
+ "filterTags": "@smokeTest and not @skipOnXGAPortraitResolution and not @skip and not @skipOnOC10",
+ },
+ "webUI-XGA": {
+ "suites": {
+ "XGAPortrait1": [
+ "webUIAccount",
+ "webUICreateFilesFolders",
+ "webUIDeleteFilesFolders",
+ "webUIFavorites",
+ "webUIFiles",
+ "webUIFilesActionMenu",
+ "webUIFilesCopy",
+ "webUIFilesDetails",
+ "webUIFilesList",
+ "webUIFilesSearch",
+ "webUILogin",
+ "webUIPreview",
+ "webUIPrivateLinks",
+ "webUIRenameFiles",
+ "webUIRenameFolders",
+ "webUIRestrictSharing",
+ "webUISharingAcceptShares",
+ "webUISharingAcceptSharesToRoot",
+ # The following suites may have all scenarios currently skipped.
+ # The suites are listed here so that scenarios will run when
+ # they are enabled.
+ "webUIAdminSettings",
+ "webUIComments",
+ "webUITags",
+ "webUIWebdavLockProtection",
+ "webUIWebdavLocks",
+ ],
+ "XGAPortrait2": [
+ "webUIMoveFilesFolders",
+ "webUIResharing1",
+ "webUIResharing2",
+ "webUIResharingToRoot",
+ "webUISharingAutocompletion",
+ "webUISharingFilePermissionMultipleUsers",
+ "webUISharingFilePermissionsGroups",
+ "webUISharingFolderAdvancedPermissionMultipleUsers",
+ "webUISharingFolderAdvancedPermissionsGroups",
+ "webUISharingFolderPermissionMultipleUsers",
+ "webUISharingFolderPermissionsGroups",
+ "webUISharingInternalGroups",
+ "webUISharingInternalGroupsEdgeCases",
+ "webUISharingInternalGroupsSharingIndicator",
+ "webUISharingInternalGroupsToRoot",
+ "webUISharingInternalGroupsToRootEdgeCases",
+ "webUISharingInternalGroupsToRootSharingIndicator",
+ "webUISharingInternalUsers",
+ "webUISharingInternalUsersCollaborator",
+ "webUISharingInternalUsersShareWithPage",
+ "webUISharingInternalUsersBlacklisted",
+ "webUISharingInternalUsersExpire",
+ "webUISharingInternalUsersExpireToRoot",
+ "webUISharingInternalUsersSharingIndicator",
+ "webUISharingInternalUsersToRoot",
+ "webUISharingInternalUsersToRootCollaborator",
+ "webUISharingInternalUsersToRootPreviews",
+ "webUISharingInternalUsersToRootShareWithPage",
+ "webUISharingInternalUsersToRootBlacklisted",
+ "webUISharingInternalUsersToRootSharingIndicator",
+ "webUISharingPermissionsUsers",
+ "webUISharingPermissionToRoot",
+ "webUISharingPublicBasic",
+ "webUISharingPublicManagement",
+ "webUISharingPublicDifferentRoles",
+ "webUISharingPublicExpire",
+ "webUITrashbinDelete",
+ "webUITrashbinFilesFolders",
+ "webUITrashbinRestore",
+ "webUIUpload",
+ ],
+ },
+ "extraEnvironment": {
+ "SCREEN_RESOLUTION": "768x1024",
+ },
+ "filterTags": "@smokeTest and not @skipOnXGAPortraitResolution and not @skip and not @skipOnOC10",
+ },
+ "webUI-Notifications-iPhone": {
+ "suites": {
+ "iPhone1-Notifications": [
+ "webUINotifications",
+ "webUISharingNotifications",
+ "webUISharingNotificationsToRoot",
+ ],
+ },
+ "extraEnvironment": {
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-Iphone-oc10-server-oauth2-login.md",
+ "SCREEN_RESOLUTION": "375x812",
+ },
+ "notificationsAppNeeded": True,
+ "filterTags": "@smokeTest and not @skipOnIphoneResolution and not @skip and not @skipOnOC10",
+ },
+ "webUI-iPhone": {
+ "suites": {
+ "iPhone1": [
+ "webUIAccount",
+ "webUICreateFilesFolders",
+ "webUIDeleteFilesFolders",
+ "webUIFavorites",
+ "webUIFiles",
+ "webUIFilesActionMenu",
+ "webUIFilesCopy",
+ "webUIFilesDetails",
+ "webUIFilesList",
+ "webUIFilesSearch",
+ "webUILogin",
+ "webUIPreview",
+ "webUIPrivateLinks",
+ "webUIRenameFiles",
+ "webUIRenameFolders",
+ "webUIRestrictSharing",
+ "webUISharingAcceptShares",
+ "webUISharingAcceptSharesToRoot",
+ # The following suites may have all scenarios currently skipped.
+ # The suites are listed here so that scenarios will run when
+ # they are enabled.
+ "webUIAdminSettings",
+ "webUIComments",
+ "webUITags",
+ "webUIWebdavLockProtection",
+ "webUIWebdavLocks",
+ ],
+ "iPhone2": [
+ "webUIMoveFilesFolders",
+ "webUIResharing1",
+ "webUIResharing2",
+ "webUIResharingToRoot",
+ "webUISharingAutocompletion",
+ "webUISharingFilePermissionMultipleUsers",
+ "webUISharingFilePermissionsGroups",
+ "webUISharingFolderAdvancedPermissionMultipleUsers",
+ "webUISharingFolderAdvancedPermissionsGroups",
+ "webUISharingFolderPermissionMultipleUsers",
+ "webUISharingFolderPermissionsGroups",
+ "webUISharingInternalGroups",
+ "webUISharingInternalGroupsEdgeCases",
+ "webUISharingInternalGroupsSharingIndicator",
+ "webUISharingInternalGroupsToRoot",
+ "webUISharingInternalGroupsToRootEdgeCases",
+ "webUISharingInternalGroupsToRootSharingIndicator",
+ "webUISharingInternalUsers",
+ "webUISharingInternalUsersExpire",
+ "webUISharingInternalUsersCollaborator",
+ "webUISharingInternalUsersShareWithPage",
+ "webUISharingInternalUsersSharingIndicator",
+ "webUISharingInternalUsersToRootCollaborator",
+ "webUISharingInternalUsersToRootPreviews",
+ "webUISharingInternalUsersToRootShareWithPage",
+ "webUISharingInternalUsersToRootSharingIndicator",
+ "webUISharingInternalUsersExpireToRoot",
+ "webUISharingInternalUsersToRoot",
+ "webUISharingInternalUsersToRootBlacklisted",
+ "webUISharingPermissionsUsers",
+ "webUISharingPermissionToRoot",
+ "webUISharingPublicBasic",
+ "webUISharingPublicManagement",
+ "webUISharingPublicDifferentRoles",
+ "webUISharingPublicExpire",
+ "webUITrashbinDelete",
+ "webUITrashbinFilesFolders",
+ "webUITrashbinRestore",
+ "webUIUpload",
+ ],
+ },
+ "extraEnvironment": {
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-Iphone-oc10-server-oauth2-login.md",
+ "SCREEN_RESOLUTION": "375x812",
+ },
+ "filterTags": "@smokeTest and not @skipOnIphoneResolution and not @skip and not @skipOnOC10",
+ },
+ "webUI-ocis": {
+ "suites": {
+ "webUIOCISBasic": [
+ "webUILogin",
+ "webUINotifications",
+ "webUIPrivateLinks",
+ "webUIPreview",
+ "webUIAccount",
+ # The following suites may have all scenarios currently skipped.
+ # The suites are listed here so that scenarios will run when
+ # they are enabled.
+ "webUIAdminSettings",
+ "webUIComments",
+ "webUITags",
+ "webUIWebdavLockProtection",
+ "webUIWebdavLocks",
+ ],
+ "webUIOCISCreate": [
+ "webUICreateFilesFolders",
+ ],
+ "webUIOCISDelete": [
+ "webUIDeleteFilesFolders",
+ ],
+ "webUIOCISRename": [
+ "webUIRenameFiles",
+ "webUIRenameFolders",
+ ],
+ "webUIOCISSharingBasic": [
+ "webUISharingAcceptShares",
+ ],
+ "webUIOCISRestrictSharing": [
+ "webUIRestrictSharing",
+ ],
+ "webUIOCISSharingNotifications": [
+ "webUISharingNotifications",
+ ],
+ "webUIFavorites": "OCISFavorites",
+ "webUIMarkdownEditor": "OCISMarkdownEditor",
+ "webUIOCISFiles1": [
+ "webUIFiles",
+ "webUIFilesActionMenu",
+ "webUIFilesCopy",
+ ],
+ "webUIOCISFiles2": [
+ "webUIFilesDetails",
+ "webUIFilesSearch",
+ ],
+ "webUIOCISFiles3": [
+ "webUIFilesList",
+ ],
+ "webUISharingAutocompletion": "OCISSharingAutocompletion",
+ "OCISSharingInternalGroups": [
+ "webUISharingInternalGroups",
+ "webUISharingInternalGroupsEdgeCases",
+ "webUISharingInternalGroupsSharingIndicator",
+ ],
+ "OCISSharingInternalUsers1": [
+ "webUISharingInternalUsers",
+ ],
+ "OCISSharingInternalUsers2": [
+ "webUISharingInternalUsersBlacklisted",
+ "webUISharingInternalUsersCollaborator",
+ "webUISharingInternalUsersShareWithPage",
+ "webUISharingInternalUsersSharingIndicator",
+ ],
+ "webUISharingInternalUsersExpire": "OCISSharingInternalUsersExpire",
+ "webUISharingPermissionsUsers": "OCISSharingPermissionsUsers",
+ "webUISharingFilePermissionsGroups": "OCISSharingFilePermissionsGroups",
+ "webUISharingFolderPermissionsGroups": "OCISSharingFolderPermissionsGroups",
+ "webUISharingFolderAdvancedPermissionsGroups": "OCISSharingFolderAdvPermissionsGrp",
+ # for now run this suite by itself see https://github.com/owncloud/ocis/issues/736
+ "OCISResharing1": [
+ "webUIResharing1",
+ ],
+ "OCISResharing2": [
+ "webUIResharing2",
+ ],
+ "webUISharingPublicBasic": "OCISSharingPublicBasic",
+ "webUISharingPublicManagement": "OCISSharingPublicManagement",
+ "webUISharingPublicExpire": "OCISSharingPublicExpire",
+ "webUISharingPublicDifferentRoles": "OCISSharingPublicDifferentRoles",
+ "webUITrashbinDelete": "OCISTrashbinDelete",
+ "webUITrashbinFilesFolders": "OCISTrashbinFilesFolders",
+ "webUITrashbinRestore": "OCISTrashbinRestore",
+ "webUIUpload": "OCISUpload",
+ "webUISharingFilePermissionMultipleUsers": "OCISSharingFilePermissionMultipleUsers",
+ "webUISharingFolderPermissionMultipleUsers": "OCISSharingFolderPermissionMultipleUsers",
+ "webUISharingFolderAdvancedPermissionMultipleUsers": "OCISSharingFolderAdvancedPermissionMU",
+ "webUIMoveFilesFolders": "OCISMove",
+ "webUIUserJourney": "OCISJourney",
+ },
+ "extraEnvironment": {
+ "NODE_TLS_REJECT_UNAUTHORIZED": "0",
+ "SERVER_HOST": "https://ocis:9200",
+ "BACKEND_HOST": "https://ocis:9200",
+ "RUN_ON_OCIS": "true",
+ "TESTING_DATA_DIR": "/srv/app/testing/data/",
+ "OCIS_REVA_DATA_ROOT": "/srv/app/tmp/ocis/owncloud/data/",
+ "WEB_UI_CONFIG": "/srv/config/drone/ocis-config.json",
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-with-ocis-server-owncloud-storage.md",
+ },
+ "runningOnOCIS": True,
+ "visualTesting": True,
+ "filterTags": "not @skip and not @skipOnOCIS and not @notToImplementOnOCIS",
+ },
+ "webUI-notifications-oc10-integration": {
+ "suites": {
+ "oc10-integration-notifications": [
+ "webUINotifications",
+ "webUISharingNotifications",
+ "webUISharingNotificationsToRoot",
+ ],
+ },
+ "extraEnvironment": {
+ "WEB_UI_CONFIG": "/srv/config/drone/config-oc10-integration-app-oauth.json",
+ "SERVER_HOST": "http://owncloud/index.php/apps/web/index.html",
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login-and-web-integration-app.md",
+ },
+ "filterTags": "not @skip and not @skipOnOC10 and not @openIdLogin and @smokeTest",
+ "oc10IntegrationAppIncluded": True,
+ "notificationsAppNeeded": True,
+ "screenShots": True,
+ },
+ "webUI-oc10-integration": {
+ "suites": {
+ "IntegrationApp1": [
+ "webUIAccount",
+ "webUICreateFilesFolders",
+ "webUIDeleteFilesFolders",
+ "webUIFavorites",
+ "webUIFiles",
+ "webUIFilesActionMenu",
+ "webUIFilesCopy",
+ "webUIFilesDetails",
+ "webUIFilesList",
+ "webUIFilesSearch",
+ "webUILogin",
+ "webUIPreview",
+ "webUIPrivateLinks",
+ "webUIRenameFiles",
+ "webUIRenameFolders",
+ "webUIRestrictSharing",
+ "webUISharingAcceptShares",
+ "webUISharingAcceptSharesToRoot",
+ # The following suites may have all scenarios currently skipped.
+ # The suites are listed here so that scenarios will run when
+ # they are enabled.
+ "webUIAdminSettings",
+ "webUIComments",
+ "webUITags",
+ "webUIWebdavLockProtection",
+ "webUIWebdavLocks",
+ ],
+ "IntegrationApp2": [
+ "webUIMoveFilesFolders",
+ "webUIResharing1",
+ "webUIResharing2",
+ "webUIResharingToRoot",
+ "webUISharingAutocompletion",
+ "webUISharingFilePermissionMultipleUsers",
+ "webUISharingFilePermissionsGroups",
+ "webUISharingFolderAdvancedPermissionMultipleUsers",
+ "webUISharingFolderAdvancedPermissionsGroups",
+ "webUISharingFolderPermissionMultipleUsers",
+ "webUISharingFolderPermissionsGroups",
+ "webUISharingInternalGroups",
+ "webUISharingInternalGroupsEdgeCases",
+ "webUISharingInternalGroupsSharingIndicator",
+ "webUISharingInternalGroupsToRoot",
+ "webUISharingInternalGroupsToRootEdgeCases",
+ "webUISharingInternalGroupsToRootSharingIndicator",
+ "webUISharingInternalUsers",
+ "webUISharingInternalUsersExpire",
+ "webUISharingInternalUsersCollaborator",
+ "webUISharingInternalUsersShareWithPage",
+ "webUISharingInternalUsersSharingIndicator",
+ "webUISharingInternalUsersToRootCollaborator",
+ "webUISharingInternalUsersToRootPreviews",
+ "webUISharingInternalUsersToRootShareWithPage",
+ "webUISharingInternalUsersToRootSharingIndicator",
+ "webUISharingInternalUsersExpireToRoot",
+ "webUISharingInternalUsersToRoot",
+ "webUISharingInternalUsersToRootBlacklisted",
+ "webUISharingPermissionsUsers",
+ "webUISharingPermissionToRoot",
+ "webUISharingPublicBasic",
+ "webUISharingPublicManagement",
+ "webUISharingPublicDifferentRoles",
+ "webUISharingPublicExpire",
+ "webUITrashbinDelete",
+ "webUITrashbinFilesFolders",
+ "webUITrashbinRestore",
+ "webUIUpload",
+ ],
+ },
+ "extraEnvironment": {
+ "WEB_UI_CONFIG": "/srv/config/drone/config-oc10-integration-app-oauth.json",
+ "SERVER_HOST": "http://owncloud/index.php/apps/web/index.html",
+ "EXPECTED_FAILURES_FILE": "/var/www/owncloud/web/tests/acceptance/expected-failures-with-oc10-server-oauth2-login-and-web-integration-app.md",
+ },
+ "filterTags": "not @skip and not @skipOnOC10 and not @openIdLogin and @smokeTest",
+ "oc10IntegrationAppIncluded": True,
+ "screenShots": True,
+ },
+ },
+ "build": True,
}
def main(ctx):
- before = beforePipelines(ctx)
+ before = beforePipelines(ctx)
- stages = stagePipelines(ctx)
- if (stages == False):
- print('Errors detected. Review messages above.')
- return []
+ stages = stagePipelines(ctx)
+ if (stages == False):
+ print("Errors detected. Review messages above.")
+ return []
- dependsOn(before, stages)
+ dependsOn(before, stages)
- after = afterPipelines(ctx)
- dependsOn(stages, after)
+ after = afterPipelines(ctx)
+ dependsOn(stages, after)
- return before + stages + after
+ return before + stages + after + checkStarlark()
def beforePipelines(ctx):
- return yarnlint() + changelog(ctx) + website(ctx)
+ return yarnlint() + changelog(ctx) + website(ctx)
def stagePipelines(ctx):
- acceptancePipelines = acceptance(ctx)
- if acceptancePipelines == False:
- return unitTests()
+ acceptancePipelines = acceptance(ctx)
+ if acceptancePipelines == False:
+ return unitTests()
- cachePipelines = cacheOcisPipeline(ctx)
- return unitTests() + cachePipelines + acceptancePipelines
+ cachePipelines = cacheOcisPipeline(ctx)
+ return unitTests() + cachePipelines + acceptancePipelines
def afterPipelines(ctx):
- return build(ctx) + notify()
+ return build(ctx) + notify()
def yarnlint():
- pipelines = []
-
- if 'yarnlint' not in config:
- return pipelines
-
- if type(config['yarnlint']) == "bool":
- if not config['yarnlint']:
- return pipelines
-
- result = {
- 'kind': 'pipeline',
- 'type': 'docker',
- 'name': 'lint-test',
- 'workspace' : {
- 'base': '/var/www/owncloud',
- 'path': config['app']
- },
- 'steps':
- installNPM() +
- lintTest(),
- 'depends_on': [],
- 'trigger': {
- 'ref': [
- 'refs/heads/master',
- 'refs/tags/**',
- 'refs/pull/**',
- ]
- }
- }
-
- for branch in config['branches']:
- result['trigger']['ref'].append('refs/heads/%s' % branch)
-
- pipelines.append(result)
-
- return pipelines
+ pipelines = []
+
+ if "yarnlint" not in config:
+ return pipelines
+
+ if type(config["yarnlint"]) == "bool":
+ if not config["yarnlint"]:
+ return pipelines
+
+ result = {
+ "kind": "pipeline",
+ "type": "docker",
+ "name": "lint-test",
+ "workspace": {
+ "base": "/var/www/owncloud",
+ "path": config["app"],
+ },
+ "steps": installNPM() +
+ lintTest(),
+ "depends_on": [],
+ "trigger": {
+ "ref": [
+ "refs/heads/master",
+ "refs/tags/**",
+ "refs/pull/**",
+ ],
+ },
+ }
+
+ for branch in config["branches"]:
+ result["trigger"]["ref"].append("refs/heads/%s" % branch)
+
+ pipelines.append(result)
+
+ return pipelines
def build(ctx):
- pipelines = []
-
- if 'build' not in config:
- return pipelines
-
- if type(config['build']) == "bool":
- if not config['build']:
- return pipelines
-
- result = {
- 'kind': 'pipeline',
- 'type': 'docker',
- 'name': 'build',
- 'workspace' : {
- 'base': '/var/www/owncloud',
- 'path': config['app']
- },
- 'steps':
- installNPM() +
- buildRelease(ctx) +
- buildDockerImage(),
- 'depends_on': [],
- 'trigger': {
- 'ref': [
- 'refs/heads/master',
- 'refs/tags/**',
- ]
- }
- }
-
- pipelines.append(result)
-
- return pipelines
+ pipelines = []
+
+ if "build" not in config:
+ return pipelines
+
+ if type(config["build"]) == "bool":
+ if not config["build"]:
+ return pipelines
+
+ result = {
+ "kind": "pipeline",
+ "type": "docker",
+ "name": "build",
+ "workspace": {
+ "base": "/var/www/owncloud",
+ "path": config["app"],
+ },
+ "steps": installNPM() +
+ buildRelease(ctx) +
+ buildDockerImage(),
+ "depends_on": [],
+ "trigger": {
+ "ref": [
+ "refs/heads/master",
+ "refs/tags/**",
+ ],
+ },
+ }
+
+ pipelines.append(result)
+
+ return pipelines
def changelog(ctx):
- pipelines = []
- repo_slug = ctx.build.source_repo if ctx.build.source_repo else ctx.repo.slug
-
- result = {
- 'kind': 'pipeline',
- 'type': 'docker',
- 'name': 'changelog',
- 'clone': {
- 'disable': True,
- },
- 'steps': [
- {
- 'name': 'clone',
- 'image': 'plugins/git-action:1',
- 'pull': 'always',
- 'settings': {
- 'actions': [
- 'clone',
- ],
- 'remote': 'https://github.com/%s' % (repo_slug),
- 'branch': ctx.build.source if ctx.build.event == 'pull_request' else 'master',
- 'path': '/drone/src',
- 'netrc_machine': 'github.com',
- 'netrc_username': {
- 'from_secret': 'github_username',
- },
- 'netrc_password': {
- 'from_secret': 'github_token',
- },
- },
- },
- {
- 'name': 'generate',
- 'image': 'toolhippie/calens:latest',
- 'pull': 'always',
- 'commands': [
- 'calens >| CHANGELOG.md',
- ],
- },
- {
- 'name': 'diff',
- 'image': 'owncloud/alpine:latest',
- 'pull': 'always',
- 'commands': [
- 'git diff',
- ],
- },
- {
- 'name': 'output',
- 'image': 'toolhippie/calens:latest',
- 'pull': 'always',
- 'commands': [
- 'cat CHANGELOG.md',
- ],
- },
- {
- 'name': 'publish',
- 'image': 'plugins/git-action:1',
- 'pull': 'always',
- 'settings': {
- 'actions': [
- 'commit',
- 'push',
- ],
- 'message': 'Automated changelog update [skip ci]',
- 'branch': 'master',
- 'author_email': 'devops@owncloud.com',
- 'author_name': 'ownClouders',
- 'netrc_machine': 'github.com',
- 'netrc_username': {
- 'from_secret': 'github_username',
- },
- 'netrc_password': {
- 'from_secret': 'github_token',
- },
- },
- 'when': {
- 'ref': {
- 'exclude': [
- 'refs/pull/**',
- 'refs/tags/**'
- ],
- },
- },
- },
- ],
- 'depends_on': [],
- 'trigger': {
- 'ref': [
- 'refs/heads/master',
- 'refs/pull/**',
- ],
- },
- }
-
- pipelines.append(result)
-
- return pipelines
+ pipelines = []
+ repo_slug = ctx.build.source_repo if ctx.build.source_repo else ctx.repo.slug
+
+ result = {
+ "kind": "pipeline",
+ "type": "docker",
+ "name": "changelog",
+ "clone": {
+ "disable": True,
+ },
+ "steps": [
+ {
+ "name": "clone",
+ "image": "plugins/git-action:1",
+ "pull": "always",
+ "settings": {
+ "actions": [
+ "clone",
+ ],
+ "remote": "https://github.com/%s" % (repo_slug),
+ "branch": ctx.build.source if ctx.build.event == "pull_request" else "master",
+ "path": "/drone/src",
+ "netrc_machine": "github.com",
+ "netrc_username": {
+ "from_secret": "github_username",
+ },
+ "netrc_password": {
+ "from_secret": "github_token",
+ },
+ },
+ },
+ {
+ "name": "generate",
+ "image": "toolhippie/calens:latest",
+ "pull": "always",
+ "commands": [
+ "calens >| CHANGELOG.md",
+ ],
+ },
+ {
+ "name": "diff",
+ "image": "owncloud/alpine:latest",
+ "pull": "always",
+ "commands": [
+ "git diff",
+ ],
+ },
+ {
+ "name": "output",
+ "image": "toolhippie/calens:latest",
+ "pull": "always",
+ "commands": [
+ "cat CHANGELOG.md",
+ ],
+ },
+ {
+ "name": "publish",
+ "image": "plugins/git-action:1",
+ "pull": "always",
+ "settings": {
+ "actions": [
+ "commit",
+ "push",
+ ],
+ "message": "Automated changelog update [skip ci]",
+ "branch": "master",
+ "author_email": "devops@owncloud.com",
+ "author_name": "ownClouders",
+ "netrc_machine": "github.com",
+ "netrc_username": {
+ "from_secret": "github_username",
+ },
+ "netrc_password": {
+ "from_secret": "github_token",
+ },
+ },
+ "when": {
+ "ref": {
+ "exclude": [
+ "refs/pull/**",
+ "refs/tags/**",
+ ],
+ },
+ },
+ },
+ ],
+ "depends_on": [],
+ "trigger": {
+ "ref": [
+ "refs/heads/master",
+ "refs/pull/**",
+ ],
+ },
+ }
+
+ pipelines.append(result)
+
+ return pipelines
def unitTests():
- return [{
- 'kind': 'pipeline',
- 'type': 'docker',
- 'name': 'unit-tests',
- 'workspace' : {
- 'base': '/var/www/owncloud',
- 'path': config['app']
- },
- 'steps':
- installNPM() +
- buildWeb() +
- [{
- 'name': 'tests',
- 'image': 'owncloudci/nodejs:12',
- 'pull': 'always',
- 'commands': [
- 'yarn test:unit',
- ],
- }],
- 'depends_on': [],
- 'trigger': {
- 'ref': [
- 'refs/heads/master',
- 'refs/pull/**',
- ],
- },
- }]
+ return [{
+ "kind": "pipeline",
+ "type": "docker",
+ "name": "unit-tests",
+ "workspace": {
+ "base": "/var/www/owncloud",
+ "path": config["app"],
+ },
+ "steps": installNPM() +
+ buildWeb() +
+ [{
+ "name": "tests",
+ "image": "owncloudci/nodejs:12",
+ "pull": "always",
+ "commands": [
+ "yarn test:unit",
+ ],
+ }],
+ "depends_on": [],
+ "trigger": {
+ "ref": [
+ "refs/heads/master",
+ "refs/pull/**",
+ ],
+ },
+ }]
def acceptance(ctx):
- pipelines = []
-
- if 'acceptance' not in config:
- return pipelines
-
- if type(config['acceptance']) == "bool":
- if not config['acceptance']:
- return pipelines
-
- errorFound = False
-
- default = {
- 'servers': [''],
- 'browsers': ['chrome'],
- 'databases': ['mysql:5.5'],
- 'extraEnvironment': {},
- 'cronOnly': False,
- 'filterTags': 'not @skip and not @skipOnOC10 and not @openIdLogin',
- 'logLevel': '2',
- 'notificationsAppNeeded': False,
- 'federatedServerNeeded': False,
- 'federatedServerVersion': '',
- 'runningOnOCIS': False,
- 'screenShots': False,
- 'visualTesting': False,
- 'openIdConnect': False,
- 'oc10IntegrationAppIncluded': False,
- 'skip': False,
- }
-
- if 'defaults' in config:
- if 'acceptance' in config['defaults']:
- for item in config['defaults']['acceptance']:
- default[item] = config['defaults']['acceptance'][item]
-
- for category, matrix in config['acceptance'].items():
- if type(matrix['suites']) == "list":
- suites = {}
- for suite in matrix['suites']:
- suites[suite] = suite
- else:
- suites = matrix['suites']
-
- for key, value in suites.items():
-
- if type(value) == "list":
- suite = value
- suiteName = key
- alternateSuiteName = key
- else:
- suite = key
- alternateSuiteName = value
- suiteName = value
-
- params = {}
- for item in default:
- params[item] = matrix[item] if item in matrix else default[item]
-
- for server in params['servers']:
- for browser in params['browsers']:
- for db in params['databases']:
- if params['skip']:
- continue
- federatedServerVersion = params['federatedServerVersion']
- federationDbSuffix = '-federated'
-
- if params['federatedServerNeeded'] and getDbName(db) not in ['mariadb', 'mysql']:
- errorFound = True
-
- browserString = '' if browser == '' else '-' + browser
- name = '%s%s' % (suiteName, browserString)
- maxLength = 50
- nameLength = len(name)
- if nameLength > maxLength:
- print("Error: generated stage name of length", nameLength, "is not supported. The maximum length is " + str(maxLength) + ".", name)
- errorFound = True
-
- # Basic steps and services for all testing
- steps = installNPM()
- if (params['oc10IntegrationAppIncluded']):
- steps += buildWebApp()
- else:
- steps += buildWeb()
-
- services = browserService(alternateSuiteName, browser)
-
- if (params['runningOnOCIS']):
- # Services and steps required for running tests with oCIS
- steps += getOcis() + ocisService() + getSkeletonFiles()
-
- services += redisService()
- else:
- # Services and steps required for running tests with oc10
- services += databaseService(db) + owncloudService()
-
- ## prepare oc10 server
- if server == '':
- server = False
-
- steps += installCore(server, db) + owncloudLog()
-
- if (params['oc10IntegrationAppIncluded']):
- steps += setupIntegrationWebApp()
- steps += setupServerAndAppsForIntegrationApp(params['logLevel'])
- else:
- steps += setupServerAndApp(params['logLevel'])
-
- if params['notificationsAppNeeded']:
- steps += setupNotificationsAppForServer()
-
- if (params['openIdConnect']):
- ## Configure oc10 and web with openidConnect login
- steps += setupGraphapiOIdC() + buildGlauth() + buildIdP() + buildOcisWeb()
- steps += idpService() + ocisWebService() + glauthService()
- else:
- ## Configure oc10 and web with oauth2 and web Service
- steps += setUpOauth2(params['oc10IntegrationAppIncluded'])
- services += webService()
-
- steps += fixPermissions()
-
- if (params['federatedServerNeeded']):
- if federatedServerVersion == '':
- federatedServerVersion = False
- # services and steps required to run federated sharing tests
- steps += installFederatedServer(federatedServerVersion, db, federationDbSuffix) + setupFedServerAndApp(params['logLevel'])
- steps += fixPermissionsFederated() + owncloudLogFederated()
-
- services += owncloudFederatedService() + databaseServiceForFederation(db, federationDbSuffix)
-
- # Copy files for upload
- steps += copyFilesForUpload()
-
- # run the acceptance tests
- steps += runWebuiAcceptanceTests(suite, alternateSuiteName, params['filterTags'], params['extraEnvironment'], browser, params['visualTesting'], params['screenShots'])
-
- # capture the screenshots from visual regression testing (only runs on failure)
- if (params['visualTesting']):
- steps += listScreenShots() +uploadVisualDiff() + uploadVisualScreenShots()
- steps += buildGithubCommentVisualDiff(ctx, suiteName, alternateSuiteName, params['runningOnOCIS'])
-
- # Capture the screenshots from acceptance tests (only runs on failure)
- if (isLocalBrowser(browser) and params['screenShots']):
- steps += uploadScreenshots() + buildGithubComment(suiteName, alternateSuiteName)
-
- # Upload the screenshots to github comment
- if (params['visualTesting'] or (isLocalBrowser(browser) and params['screenShots'])):
- steps += githubComment()
-
- result = {
- 'kind': 'pipeline',
- 'type': 'docker',
- 'name': name,
- 'workspace' : {
- 'base': '/var/www/owncloud',
- 'path': config['app']
- },
- 'steps': steps,
- 'services': services,
- 'depends_on': ['cache-ocis'] if (params['runningOnOCIS']) else [],
- 'trigger': {
- 'ref': [
- 'refs/tags/**',
- 'refs/pull/**',
- ]
- },
- 'volumes': [{
- 'name': 'uploads',
- 'temp': {}
- }, {
- 'name': 'configs',
- 'temp': {}
- }, {
- 'name': 'gopath',
- 'temp': {}
- }]
- }
-
- for branch in config['branches']:
- result['trigger']['ref'].append('refs/heads/%s' % branch)
-
- if (params['cronOnly']):
- result['trigger']['event'] = ['cron']
-
- pipelines.append(result)
-
- if errorFound:
- return False
-
- return pipelines
+ pipelines = []
+
+ if "acceptance" not in config:
+ return pipelines
+
+ if type(config["acceptance"]) == "bool":
+ if not config["acceptance"]:
+ return pipelines
+
+ errorFound = False
+
+ default = {
+ "servers": [""],
+ "browsers": ["chrome"],
+ "databases": ["mysql:5.5"],
+ "extraEnvironment": {},
+ "cronOnly": False,
+ "filterTags": "not @skip and not @skipOnOC10 and not @openIdLogin",
+ "logLevel": "2",
+ "notificationsAppNeeded": False,
+ "federatedServerNeeded": False,
+ "federatedServerVersion": "",
+ "runningOnOCIS": False,
+ "screenShots": False,
+ "visualTesting": False,
+ "openIdConnect": False,
+ "oc10IntegrationAppIncluded": False,
+ "skip": False,
+ }
+
+ if "defaults" in config:
+ if "acceptance" in config["defaults"]:
+ for item in config["defaults"]["acceptance"]:
+ default[item] = config["defaults"]["acceptance"][item]
+
+ for category, matrix in config["acceptance"].items():
+ if type(matrix["suites"]) == "list":
+ suites = {}
+ for suite in matrix["suites"]:
+ suites[suite] = suite
+ else:
+ suites = matrix["suites"]
+
+ for key, value in suites.items():
+ if type(value) == "list":
+ suite = value
+ suiteName = key
+ alternateSuiteName = key
+ else:
+ suite = key
+ alternateSuiteName = value
+ suiteName = value
+
+ params = {}
+ for item in default:
+ params[item] = matrix[item] if item in matrix else default[item]
+
+ for server in params["servers"]:
+ for browser in params["browsers"]:
+ for db in params["databases"]:
+ if params["skip"]:
+ continue
+ federatedServerVersion = params["federatedServerVersion"]
+ federationDbSuffix = "-federated"
+
+ if params["federatedServerNeeded"] and getDbName(db) not in ["mariadb", "mysql"]:
+ errorFound = True
+
+ browserString = "" if browser == "" else "-" + browser
+ name = "%s%s" % (suiteName, browserString)
+ maxLength = 50
+ nameLength = len(name)
+ if nameLength > maxLength:
+ print("Error: generated stage name of length", nameLength, "is not supported. The maximum length is " + str(maxLength) + ".", name)
+ errorFound = True
+
+ # Basic steps and services for all testing
+ steps = installNPM()
+ if (params["oc10IntegrationAppIncluded"]):
+ steps += buildWebApp()
+ else:
+ steps += buildWeb()
+
+ services = browserService(alternateSuiteName, browser)
+
+ if (params["runningOnOCIS"]):
+ # Services and steps required for running tests with oCIS
+ steps += getOcis() + ocisService() + getSkeletonFiles()
+
+ services += redisService()
+ else:
+ # Services and steps required for running tests with oc10
+ services += databaseService(db) + owncloudService()
+
+ ## prepare oc10 server
+ if server == "":
+ server = False
+
+ steps += installCore(server, db) + owncloudLog()
+
+ if (params["oc10IntegrationAppIncluded"]):
+ steps += setupIntegrationWebApp()
+ steps += setupServerAndAppsForIntegrationApp(params["logLevel"])
+ else:
+ steps += setupServerAndApp(params["logLevel"])
+
+ if params["notificationsAppNeeded"]:
+ steps += setupNotificationsAppForServer()
+
+ if (params["openIdConnect"]):
+ ## Configure oc10 and web with openidConnect login
+ steps += setupGraphapiOIdC() + buildGlauth() + buildIdP() + buildOcisWeb()
+ steps += idpService() + ocisWebService() + glauthService()
+ else:
+ ## Configure oc10 and web with oauth2 and web Service
+ steps += setUpOauth2(params["oc10IntegrationAppIncluded"])
+ services += webService()
+
+ steps += fixPermissions()
+
+ if (params["federatedServerNeeded"]):
+ if federatedServerVersion == "":
+ federatedServerVersion = False
+
+ # services and steps required to run federated sharing tests
+ steps += installFederatedServer(federatedServerVersion, db, federationDbSuffix) + setupFedServerAndApp(params["logLevel"])
+ steps += fixPermissionsFederated() + owncloudLogFederated()
+
+ services += owncloudFederatedService() + databaseServiceForFederation(db, federationDbSuffix)
+
+ # Copy files for upload
+ steps += copyFilesForUpload()
+
+ # run the acceptance tests
+ steps += runWebuiAcceptanceTests(suite, alternateSuiteName, params["filterTags"], params["extraEnvironment"], browser, params["visualTesting"], params["screenShots"])
+
+ # capture the screenshots from visual regression testing (only runs on failure)
+ if (params["visualTesting"]):
+ steps += listScreenShots() + uploadVisualDiff() + uploadVisualScreenShots()
+ steps += buildGithubCommentVisualDiff(ctx, suiteName, alternateSuiteName, params["runningOnOCIS"])
+
+ # Capture the screenshots from acceptance tests (only runs on failure)
+ if (isLocalBrowser(browser) and params["screenShots"]):
+ steps += uploadScreenshots() + buildGithubComment(suiteName, alternateSuiteName)
+
+ # Upload the screenshots to github comment
+ if (params["visualTesting"] or (isLocalBrowser(browser) and params["screenShots"])):
+ steps += githubComment()
+
+ result = {
+ "kind": "pipeline",
+ "type": "docker",
+ "name": name,
+ "workspace": {
+ "base": "/var/www/owncloud",
+ "path": config["app"],
+ },
+ "steps": steps,
+ "services": services,
+ "depends_on": ["cache-ocis"] if (params["runningOnOCIS"]) else [],
+ "trigger": {
+ "ref": [
+ "refs/tags/**",
+ "refs/pull/**",
+ ],
+ },
+ "volumes": [{
+ "name": "uploads",
+ "temp": {},
+ }, {
+ "name": "configs",
+ "temp": {},
+ }, {
+ "name": "gopath",
+ "temp": {},
+ }],
+ }
+
+ for branch in config["branches"]:
+ result["trigger"]["ref"].append("refs/heads/%s" % branch)
+
+ if (params["cronOnly"]):
+ result["trigger"]["event"] = ["cron"]
+
+ pipelines.append(result)
+
+ if errorFound:
+ return False
+
+ return pipelines
def notify():
- pipelines = []
-
- result = {
- 'kind': 'pipeline',
- 'type': 'docker',
- 'name': 'chat-notifications',
- 'clone': {
- 'disable': True
- },
- 'steps': [
- {
- 'name': 'notify-rocketchat',
- 'image': 'plugins/slack:1',
- 'pull': 'always',
- 'settings': {
- 'webhook': {
- 'from_secret': config['rocketchat']['from_secret']
- },
- 'channel': config['rocketchat']['channel']
- }
- }
- ],
- 'depends_on': [],
- 'trigger': {
- 'ref': [
- 'refs/tags/**'
- ],
- 'status': [
- 'success',
- 'failure'
- ]
- }
- }
-
- for branch in config['branches']:
- result['trigger']['ref'].append('refs/heads/%s' % branch)
-
- pipelines.append(result)
-
- return pipelines
+ pipelines = []
+
+ result = {
+ "kind": "pipeline",
+ "type": "docker",
+ "name": "chat-notifications",
+ "clone": {
+ "disable": True,
+ },
+ "steps": [
+ {
+ "name": "notify-rocketchat",
+ "image": "plugins/slack:1",
+ "pull": "always",
+ "settings": {
+ "webhook": {
+ "from_secret": config["rocketchat"]["from_secret"],
+ },
+ "channel": config["rocketchat"]["channel"],
+ },
+ },
+ ],
+ "depends_on": [],
+ "trigger": {
+ "ref": [
+ "refs/tags/**",
+ ],
+ "status": [
+ "success",
+ "failure",
+ ],
+ },
+ }
+
+ for branch in config["branches"]:
+ result["trigger"]["ref"].append("refs/heads/%s" % branch)
+
+ pipelines.append(result)
+
+ return pipelines
def databaseServiceForFederation(db, suffix):
- dbName = getDbName(db)
-
- # only support mariadb, for web, it's not important to support others
- if dbName not in ['mariadb', 'mysql']:
- print('Not implemented federated database for', dbName)
- return []
-
- return [{
- 'name': dbName + suffix,
- 'image': db,
- 'pull': 'always',
- 'environment': {
- 'MYSQL_USER': getDbUsername(db),
- 'MYSQL_PASSWORD': getDbPassword(db),
- 'MYSQL_DATABASE': getDbDatabase(db) + suffix,
- 'MYSQL_ROOT_PASSWORD': getDbRootPassword()
- }
- }]
+ dbName = getDbName(db)
+
+ # only support mariadb, for web, it's not important to support others
+ if dbName not in ["mariadb", "mysql"]:
+ print("Not implemented federated database for", dbName)
+ return []
+
+ return [{
+ "name": dbName + suffix,
+ "image": db,
+ "pull": "always",
+ "environment": {
+ "MYSQL_USER": getDbUsername(db),
+ "MYSQL_PASSWORD": getDbPassword(db),
+ "MYSQL_DATABASE": getDbDatabase(db) + suffix,
+ "MYSQL_ROOT_PASSWORD": getDbRootPassword(),
+ },
+ }]
def databaseService(db):
- dbName = getDbName(db)
- if (dbName == 'mariadb') or (dbName == 'mysql'):
- return [{
- 'name': dbName,
- 'image': db,
- 'pull': 'always',
- 'environment': {
- 'MYSQL_USER': getDbUsername(db),
- 'MYSQL_PASSWORD': getDbPassword(db),
- 'MYSQL_DATABASE': getDbDatabase(db),
- 'MYSQL_ROOT_PASSWORD': getDbRootPassword()
- }
- }]
-
- if dbName == 'postgres':
- return [{
- 'name': dbName,
- 'image': db,
- 'pull': 'always',
- 'environment': {
- 'POSTGRES_USER': getDbUsername(db),
- 'POSTGRES_PASSWORD': getDbPassword(db),
- 'POSTGRES_DB': getDbDatabase(db)
- }
- }]
-
- if dbName == 'oracle':
- return [{
- 'name': dbName,
- 'image': 'deepdiver/docker-oracle-xe-11g:latest',
- 'pull': 'always',
- 'environment': {
- 'ORACLE_USER': getDbUsername(db),
- 'ORACLE_PASSWORD': getDbPassword(db),
- 'ORACLE_DB': getDbDatabase(db),
- 'ORACLE_DISABLE_ASYNCH_IO': 'true',
- }
- }]
-
- return []
+ dbName = getDbName(db)
+ if (dbName == "mariadb") or (dbName == "mysql"):
+ return [{
+ "name": dbName,
+ "image": db,
+ "pull": "always",
+ "environment": {
+ "MYSQL_USER": getDbUsername(db),
+ "MYSQL_PASSWORD": getDbPassword(db),
+ "MYSQL_DATABASE": getDbDatabase(db),
+ "MYSQL_ROOT_PASSWORD": getDbRootPassword(),
+ },
+ }]
+
+ if dbName == "postgres":
+ return [{
+ "name": dbName,
+ "image": db,
+ "pull": "always",
+ "environment": {
+ "POSTGRES_USER": getDbUsername(db),
+ "POSTGRES_PASSWORD": getDbPassword(db),
+ "POSTGRES_DB": getDbDatabase(db),
+ },
+ }]
+
+ if dbName == "oracle":
+ return [{
+ "name": dbName,
+ "image": "deepdiver/docker-oracle-xe-11g:latest",
+ "pull": "always",
+ "environment": {
+ "ORACLE_USER": getDbUsername(db),
+ "ORACLE_PASSWORD": getDbPassword(db),
+ "ORACLE_DB": getDbDatabase(db),
+ "ORACLE_DISABLE_ASYNCH_IO": "true",
+ },
+ }]
+
+ return []
def browserService(alternateSuiteName, browser):
- if browser == 'chrome':
- return [{
- 'name': 'selenium',
- 'image': 'selenium/standalone-chrome-debug:3.141.59',
- 'pull': 'always',
- 'volumes': [{
- 'name': 'uploads',
- 'path': '/uploads'
- }],
- }]
-
- if browser == 'firefox':
- return [{
- 'name': 'selenium',
- 'image': 'selenium/standalone-firefox-debug:3.141.59',
- 'pull': 'always',
- 'volumes': [{
- 'name': 'uploads',
- 'path': '/uploads'
- }],
- }]
-
- if not isLocalBrowser(browser):
- return [{
- 'name': 'saucelabs',
- 'image': 'henrrich/docker-sauce-connect:latest',
- 'pull': 'if-not-exists',
- 'environment': {
- 'SAUCE_USERNAME': {
- 'from_secret': 'sauce_username'
- },
- 'SAUCE_ACCESS_KEY': {
- 'from_secret': 'sauce_access_key'
- },
- },
- 'commands': [
- '/usr/local/sauce-connect/bin/sc -i %s' % getSaucelabsTunnelName(alternateSuiteName, browser)
- ]
- }]
-
- return []
+ if browser == "chrome":
+ return [{
+ "name": "selenium",
+ "image": "selenium/standalone-chrome-debug:3.141.59",
+ "pull": "always",
+ "volumes": [{
+ "name": "uploads",
+ "path": "/uploads",
+ }],
+ }]
+
+ if browser == "firefox":
+ return [{
+ "name": "selenium",
+ "image": "selenium/standalone-firefox-debug:3.141.59",
+ "pull": "always",
+ "volumes": [{
+ "name": "uploads",
+ "path": "/uploads",
+ }],
+ }]
+
+ if not isLocalBrowser(browser):
+ return [{
+ "name": "saucelabs",
+ "image": "henrrich/docker-sauce-connect:latest",
+ "pull": "if-not-exists",
+ "environment": {
+ "SAUCE_USERNAME": {
+ "from_secret": "sauce_username",
+ },
+ "SAUCE_ACCESS_KEY": {
+ "from_secret": "sauce_access_key",
+ },
+ },
+ "commands": [
+ "/usr/local/sauce-connect/bin/sc -i %s" % getSaucelabsTunnelName(alternateSuiteName, browser),
+ ],
+ }]
+
+ return []
def owncloudService():
- return [{
- 'name': 'owncloud',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'environment': {
- 'APACHE_WEBROOT': '/var/www/owncloud/server/',
- },
- 'command': [
- '/usr/local/bin/apachectl',
- '-e',
- 'debug',
- '-D',
- 'FOREGROUND'
- ]
- }]
+ return [{
+ "name": "owncloud",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "environment": {
+ "APACHE_WEBROOT": "/var/www/owncloud/server/",
+ },
+ "command": [
+ "/usr/local/bin/apachectl",
+ "-e",
+ "debug",
+ "-D",
+ "FOREGROUND",
+ ],
+ }]
def owncloudFederatedService():
- return [{
- 'name': 'federated',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'environment': {
- 'APACHE_WEBROOT': '/var/www/owncloud/federated/',
- },
- 'command': [
- '/usr/local/bin/apachectl',
- '-e',
- 'debug',
- '-D',
- 'FOREGROUND'
- ]
- }]
+ return [{
+ "name": "federated",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "environment": {
+ "APACHE_WEBROOT": "/var/www/owncloud/federated/",
+ },
+ "command": [
+ "/usr/local/bin/apachectl",
+ "-e",
+ "debug",
+ "-D",
+ "FOREGROUND",
+ ],
+ }]
def getDbName(db):
- return db.split(':')[0]
+ return db.split(":")[0]
def getDbUsername(db):
- name = getDbName(db)
+ name = getDbName(db)
- if name == 'oracle':
- return 'system'
+ if name == "oracle":
+ return "system"
- return 'owncloud'
+ return "owncloud"
def getDbPassword(db):
- name = getDbName(db)
+ name = getDbName(db)
- if name == 'oracle':
- return 'oracle'
+ if name == "oracle":
+ return "oracle"
- return 'owncloud'
+ return "owncloud"
def getDbRootPassword():
- return 'owncloud'
+ return "owncloud"
def getDbDatabase(db):
- name = getDbName(db)
+ name = getDbName(db)
- if name == 'oracle':
- return 'XE'
+ if name == "oracle":
+ return "XE"
- return 'owncloud'
+ return "owncloud"
def getSaucelabsTunnelName(alternateSuiteName, browser):
- return '${DRONE_BUILD_NUMBER}-acceptance-%s-%s' % (alternateSuiteName, browser)
+ return "${DRONE_BUILD_NUMBER}-acceptance-%s-%s" % (alternateSuiteName, browser)
def getSaucelabsBrowserName(browser):
- if (browser == 'IE11'):
- return 'internet explorer'
- if (browser == 'Edge'):
- return 'MicrosoftEdge'
- return browser
+ if (browser == "IE11"):
+ return "internet explorer"
+ if (browser == "Edge"):
+ return "MicrosoftEdge"
+ return browser
def isLocalBrowser(browser):
- return ((browser == 'chrome') or (browser == 'firefox'))
+ return ((browser == "chrome") or (browser == "firefox"))
def installCore(version, db):
- host = getDbName(db)
- dbType = host
-
- username = getDbUsername(db)
- password = getDbPassword(db)
- database = getDbDatabase(db)
-
- if host == 'mariadb':
- dbType = 'mysql'
-
- if host == 'postgres':
- dbType = 'pgsql'
-
- if host == 'oracle':
- dbType = 'oci'
-
- stepDefinition = {
- 'name': 'install-core',
- 'image': 'owncloudci/core',
- 'pull': 'always',
- }
-
- if version:
- stepDefinition.update({'settings': {
- 'version': version,
- 'core_path': '/var/www/owncloud/server',
- 'db_type': dbType,
- 'db_name': database,
- 'db_host': host,
- 'db_username': username,
- 'db_password': password
- }})
- else:
- stepDefinition.update({'settings': {
- 'core_path': '/var/www/owncloud/server',
- 'db_type': dbType,
- 'db_name': database,
- 'db_host': host,
- 'db_username': username,
- 'db_password': password
- }})
- stepDefinition.update({'commands': [
- '. /var/www/owncloud/web/.drone.env',
- 'export PLUGIN_GIT_REFERENCE=$CORE_COMMITID',
- 'bash /usr/sbin/plugin.sh'
- ]})
-
- return [stepDefinition]
-
-def installFederatedServer(version, db, dbSuffix = '-federated'):
- host = getDbName(db)
- dbType = host
-
- username = getDbUsername(db)
- password = getDbPassword(db)
- database = getDbDatabase(db) + dbSuffix
-
- if host == 'mariadb':
- dbType = 'mysql'
- elif host == 'postgres':
- dbType = 'pgsql'
- elif host == 'oracle':
- dbType = 'oci'
-
- stepDefinition = {
- 'name': 'install-federated',
- 'image': 'owncloudci/core',
- 'pull': 'always',
- }
- if version:
- stepDefinition.update({'settings': {
- 'version': version,
- 'core_path': '/var/www/owncloud/federated/',
- 'db_type': dbType,
- 'db_name': database,
- 'db_host': host + dbSuffix,
- 'db_username': username,
- 'db_password': password
- }})
- else:
- stepDefinition.update({'settings': {
- 'core_path': '/var/www/owncloud/federated/',
- 'db_type': dbType,
- 'db_name': database,
- 'db_host': host + dbSuffix,
- 'db_username': username,
- 'db_password': password
- }})
- stepDefinition.update({'commands': [
- '. /var/www/owncloud/web/.drone.env',
- 'export PLUGIN_GIT_REFERENCE=$CORE_COMMITID',
- 'bash /usr/sbin/plugin.sh'
- ]})
-
- return [stepDefinition]
+ host = getDbName(db)
+ dbType = host
+
+ username = getDbUsername(db)
+ password = getDbPassword(db)
+ database = getDbDatabase(db)
+
+ if host == "mariadb":
+ dbType = "mysql"
+
+ if host == "postgres":
+ dbType = "pgsql"
+
+ if host == "oracle":
+ dbType = "oci"
+
+ stepDefinition = {
+ "name": "install-core",
+ "image": "owncloudci/core",
+ "pull": "always",
+ }
+
+ if version:
+ stepDefinition.update({"settings": {
+ "version": version,
+ "core_path": "/var/www/owncloud/server",
+ "db_type": dbType,
+ "db_name": database,
+ "db_host": host,
+ "db_username": username,
+ "db_password": password,
+ }})
+ else:
+ stepDefinition.update({"settings": {
+ "core_path": "/var/www/owncloud/server",
+ "db_type": dbType,
+ "db_name": database,
+ "db_host": host,
+ "db_username": username,
+ "db_password": password,
+ }})
+ stepDefinition.update({"commands": [
+ ". /var/www/owncloud/web/.drone.env",
+ "export PLUGIN_GIT_REFERENCE=$CORE_COMMITID",
+ "bash /usr/sbin/plugin.sh",
+ ]})
+
+ return [stepDefinition]
+
+def installFederatedServer(version, db, dbSuffix = "-federated"):
+ host = getDbName(db)
+ dbType = host
+
+ username = getDbUsername(db)
+ password = getDbPassword(db)
+ database = getDbDatabase(db) + dbSuffix
+
+ if host == "mariadb":
+ dbType = "mysql"
+ elif host == "postgres":
+ dbType = "pgsql"
+ elif host == "oracle":
+ dbType = "oci"
+
+ stepDefinition = {
+ "name": "install-federated",
+ "image": "owncloudci/core",
+ "pull": "always",
+ }
+ if version:
+ stepDefinition.update({"settings": {
+ "version": version,
+ "core_path": "/var/www/owncloud/federated/",
+ "db_type": dbType,
+ "db_name": database,
+ "db_host": host + dbSuffix,
+ "db_username": username,
+ "db_password": password,
+ }})
+ else:
+ stepDefinition.update({"settings": {
+ "core_path": "/var/www/owncloud/federated/",
+ "db_type": dbType,
+ "db_name": database,
+ "db_host": host + dbSuffix,
+ "db_username": username,
+ "db_password": password,
+ }})
+ stepDefinition.update({"commands": [
+ ". /var/www/owncloud/web/.drone.env",
+ "export PLUGIN_GIT_REFERENCE=$CORE_COMMITID",
+ "bash /usr/sbin/plugin.sh",
+ ]})
+
+ return [stepDefinition]
def installNPM():
- return [{
- 'name': 'npm-install',
- 'image': 'owncloudci/nodejs:12',
- 'pull': 'always',
- 'commands': [
- 'yarn install --frozen-lockfile'
- ]
- }]
+ return [{
+ "name": "npm-install",
+ "image": "owncloudci/nodejs:12",
+ "pull": "always",
+ "commands": [
+ "yarn install --frozen-lockfile",
+ ],
+ }]
def lintTest():
- return [{
- 'name': 'lint-test',
- 'image': 'owncloudci/nodejs:12',
- 'pull': 'always',
- 'commands': [
- 'yarn run lint'
- ]
- }]
+ return [{
+ "name": "lint-test",
+ "image": "owncloudci/nodejs:12",
+ "pull": "always",
+ "commands": [
+ "yarn run lint",
+ ],
+ }]
def buildWebApp():
- return [{
- 'name': 'build-web-integration-app',
- 'image': 'owncloudci/nodejs:12',
- 'pull': 'always',
- 'commands': [
- 'yarn build',
- 'mkdir -p /srv/config',
- 'cp -r /var/www/owncloud/web/tests/drone /srv/config',
- 'ls -la /srv/config/drone'
- ],
- 'volumes': [{
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "build-web-integration-app",
+ "image": "owncloudci/nodejs:12",
+ "pull": "always",
+ "commands": [
+ "yarn build",
+ "mkdir -p /srv/config",
+ "cp -r /var/www/owncloud/web/tests/drone /srv/config",
+ "ls -la /srv/config/drone",
+ ],
+ "volumes": [{
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def setupIntegrationWebApp():
- return [{
- 'name': 'setup-web-integration-app',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/server',
- 'mkdir apps-external/web',
- 'cp /srv/config/drone/config-oc10-integration-app-oauth.json config/config.json',
- 'cp /var/www/owncloud/web/packages/web-integration-oc10/* apps-external/web -r',
- 'cp /var/www/owncloud/web/dist/* apps-external/web -r',
- 'ls -la apps-external/web',
- 'cat config/config.json'
- ],
- 'volumes': [{
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "setup-web-integration-app",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/server",
+ "mkdir apps-external/web",
+ "cp /srv/config/drone/config-oc10-integration-app-oauth.json config/config.json",
+ "cp /var/www/owncloud/web/packages/web-integration-oc10/* apps-external/web -r",
+ "cp /var/www/owncloud/web/dist/* apps-external/web -r",
+ "ls -la apps-external/web",
+ "cat config/config.json",
+ ],
+ "volumes": [{
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def buildWeb():
- return [{
- 'name': 'build-web',
- 'image': 'owncloudci/nodejs:12',
- 'pull': 'always',
- 'commands': [
- 'yarn build',
- 'cp tests/drone/config-oc10-oauth.json dist/config.json',
- 'mkdir -p /srv/config',
- 'cp -r /var/www/owncloud/web/tests/drone /srv/config',
- 'ls -la /srv/config/drone'
- ],
- 'volumes': [{
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "build-web",
+ "image": "owncloudci/nodejs:12",
+ "pull": "always",
+ "commands": [
+ "yarn build",
+ "cp tests/drone/config-oc10-oauth.json dist/config.json",
+ "mkdir -p /srv/config",
+ "cp -r /var/www/owncloud/web/tests/drone /srv/config",
+ "ls -la /srv/config/drone",
+ ],
+ "volumes": [{
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def buildDockerImage():
- return [{
- 'name': 'docker',
- 'image': 'plugins/docker:18.09',
- 'pull': 'always',
- 'settings': {
- 'username': {
- 'from_secret': 'docker_username',
- },
- 'password': {
- 'from_secret': 'docker_password',
- },
- 'auto_tag': True,
- 'dockerfile': 'docker/Dockerfile',
- 'repo': 'owncloud/web',
- },
- 'when': {
- 'ref': {
- 'exclude': [
- 'refs/pull/**',
- ],
- },
- },
- }]
+ return [{
+ "name": "docker",
+ "image": "plugins/docker:18.09",
+ "pull": "always",
+ "settings": {
+ "username": {
+ "from_secret": "docker_username",
+ },
+ "password": {
+ "from_secret": "docker_password",
+ },
+ "auto_tag": True,
+ "dockerfile": "docker/Dockerfile",
+ "repo": "owncloud/web",
+ },
+ "when": {
+ "ref": {
+ "exclude": [
+ "refs/pull/**",
+ ],
+ },
+ },
+ }]
def buildRelease(ctx):
- return [
- {
- 'name': 'make',
- 'image': 'owncloudci/nodejs:12',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/web',
- 'make -f Makefile.release'
- ],
- },
- {
- 'name': 'changelog',
- 'image': 'toolhippie/calens:latest',
- 'pull': 'always',
- 'commands': [
- 'calens --version %s -o dist/CHANGELOG.md -t changelog/CHANGELOG-Release.tmpl' % ctx.build.ref.replace("refs/tags/v", "").split("-")[0],
- ],
- 'when': {
- 'ref': [
- 'refs/tags/**',
- ],
- },
- },
- {
- 'name': 'publish',
- 'image': 'plugins/github-release:1',
- 'pull': 'always',
- 'settings': {
- 'api_key': {
- 'from_secret': 'github_token',
- },
- 'files': [
- 'release/*',
- ],
- 'checksum': [
- 'md5',
- 'sha256'
- ],
- 'title': ctx.build.ref.replace("refs/tags/v", ""),
- 'note': 'dist/CHANGELOG.md',
- 'overwrite': True,
- },
- 'when': {
- 'ref': [
- 'refs/tags/**',
- ],
- }
- }
- ]
+ return [
+ {
+ "name": "make",
+ "image": "owncloudci/nodejs:12",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/web",
+ "make -f Makefile.release",
+ ],
+ },
+ {
+ "name": "changelog",
+ "image": "toolhippie/calens:latest",
+ "pull": "always",
+ "commands": [
+ "calens --version %s -o dist/CHANGELOG.md -t changelog/CHANGELOG-Release.tmpl" % ctx.build.ref.replace("refs/tags/v", "").split("-")[0],
+ ],
+ "when": {
+ "ref": [
+ "refs/tags/**",
+ ],
+ },
+ },
+ {
+ "name": "publish",
+ "image": "plugins/github-release:1",
+ "pull": "always",
+ "settings": {
+ "api_key": {
+ "from_secret": "github_token",
+ },
+ "files": [
+ "release/*",
+ ],
+ "checksum": [
+ "md5",
+ "sha256",
+ ],
+ "title": ctx.build.ref.replace("refs/tags/v", ""),
+ "note": "dist/CHANGELOG.md",
+ "overwrite": True,
+ },
+ "when": {
+ "ref": [
+ "refs/tags/**",
+ ],
+ },
+ },
+ ]
def website(ctx):
- return [
- {
- 'kind': 'pipeline',
- 'type': 'docker',
- 'name': 'website',
- 'platform': {
- 'os': 'linux',
- 'arch': 'amd64',
- },
- 'steps': [
- {
- 'name': 'prepare',
- 'image': 'owncloudci/alpine:latest',
- 'commands': [
- ' make docs-copy'
- ],
- },
- {
- 'name': 'test',
- 'image': 'owncloudci/hugo:0.71.0',
- 'commands': [
- 'cd hugo',
- ' hugo',
- ],
- },
- {
- 'name': 'list',
- 'image': 'owncloudci/alpine:latest',
- 'commands': [
- 'tree hugo/public',
- ],
- },
- {
- 'name': 'publish',
- 'image': 'plugins/gh-pages:1',
- 'pull': 'always',
- 'settings': {
- 'username': {
- 'from_secret': 'github_username',
- },
- 'password': {
- 'from_secret': 'github_token',
- },
- 'pages_directory': 'docs/',
- 'target_branch': 'docs',
- },
- 'when': {
- 'ref': {
- 'exclude': [
- 'refs/pull/**',
- ],
- },
- },
- },
- {
- 'name': 'downstream',
- 'image': 'plugins/downstream',
- 'settings': {
- 'server': 'https://drone.owncloud.com/',
- 'token': {
- 'from_secret': 'drone_token',
- },
- 'repositories': [
- 'owncloud/owncloud.github.io@source',
- ],
- },
- 'when': {
- 'ref': {
- 'exclude': [
- 'refs/pull/**',
- ],
- },
- },
- },
- ],
- 'depends_on': [],
- 'trigger': {
- 'ref': [
- 'refs/heads/master',
- 'refs/pull/**',
- ],
- },
- }
- ]
+ return [
+ {
+ "kind": "pipeline",
+ "type": "docker",
+ "name": "website",
+ "platform": {
+ "os": "linux",
+ "arch": "amd64",
+ },
+ "steps": [
+ {
+ "name": "prepare",
+ "image": "owncloudci/alpine:latest",
+ "commands": [
+ "\tmake docs-copy",
+ ],
+ },
+ {
+ "name": "test",
+ "image": "owncloudci/hugo:0.71.0",
+ "commands": [
+ "cd hugo",
+ "\thugo",
+ ],
+ },
+ {
+ "name": "list",
+ "image": "owncloudci/alpine:latest",
+ "commands": [
+ "tree hugo/public",
+ ],
+ },
+ {
+ "name": "publish",
+ "image": "plugins/gh-pages:1",
+ "pull": "always",
+ "settings": {
+ "username": {
+ "from_secret": "github_username",
+ },
+ "password": {
+ "from_secret": "github_token",
+ },
+ "pages_directory": "docs/",
+ "target_branch": "docs",
+ },
+ "when": {
+ "ref": {
+ "exclude": [
+ "refs/pull/**",
+ ],
+ },
+ },
+ },
+ {
+ "name": "downstream",
+ "image": "plugins/downstream",
+ "settings": {
+ "server": "https://drone.owncloud.com/",
+ "token": {
+ "from_secret": "drone_token",
+ },
+ "repositories": [
+ "owncloud/owncloud.github.io@source",
+ ],
+ },
+ "when": {
+ "ref": {
+ "exclude": [
+ "refs/pull/**",
+ ],
+ },
+ },
+ },
+ ],
+ "depends_on": [],
+ "trigger": {
+ "ref": [
+ "refs/heads/master",
+ "refs/pull/**",
+ ],
+ },
+ },
+ ]
def getSkeletonFiles():
- return [{
- 'name': 'setup-skeleton-files',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'git clone https://github.com/owncloud/testing.git /srv/app/testing',
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- }],
- }]
+ return [{
+ "name": "setup-skeleton-files",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "git clone https://github.com/owncloud/testing.git /srv/app/testing",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }],
+ }]
def webService():
- return [{
- 'name': 'web',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'environment': {
- 'APACHE_WEBROOT': '/var/www/owncloud/web/dist',
- },
- 'commands': [
- 'mkdir dist',
- '/usr/local/bin/apachectl -e debug -D FOREGROUND',
- ]
- }]
+ return [{
+ "name": "web",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "environment": {
+ "APACHE_WEBROOT": "/var/www/owncloud/web/dist",
+ },
+ "commands": [
+ "mkdir dist",
+ "/usr/local/bin/apachectl -e debug -D FOREGROUND",
+ ],
+ }]
def setUpOauth2(forIntegrationApp):
- oidcURL = ''
-
- if (forIntegrationApp):
- oidcURL = 'http://owncloud/index.php/apps/web/oidc-callback.html'
- else:
- oidcURL = 'http://web/oidc-callback.html'
-
- return [{
- 'name': 'setup-oauth2',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'git clone -b master https://github.com/owncloud/oauth2.git /var/www/owncloud/server/apps/oauth2',
- 'cd /var/www/owncloud/server/apps/oauth2',
- 'make vendor',
- 'cd /var/www/owncloud/server/',
- 'php occ a:e oauth2',
- 'php occ oauth2:add-client Web Cxfj9F9ZZWQbQZps1E1M0BszMz6OOFq3lxjSuc8Uh4HLEYb9KIfyRMmgY5ibXXrU 930C6aA0U1VhM03IfNiheR2EwSzRi4hRSpcNqIhhbpeSGU6h38xssVfNcGP0sSwQ ' + oidcURL
- ]
- }]
+ oidcURL = ""
+
+ if (forIntegrationApp):
+ oidcURL = "http://owncloud/index.php/apps/web/oidc-callback.html"
+ else:
+ oidcURL = "http://web/oidc-callback.html"
+
+ return [{
+ "name": "setup-oauth2",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "git clone -b master https://github.com/owncloud/oauth2.git /var/www/owncloud/server/apps/oauth2",
+ "cd /var/www/owncloud/server/apps/oauth2",
+ "make vendor",
+ "cd /var/www/owncloud/server/",
+ "php occ a:e oauth2",
+ "php occ oauth2:add-client Web Cxfj9F9ZZWQbQZps1E1M0BszMz6OOFq3lxjSuc8Uh4HLEYb9KIfyRMmgY5ibXXrU 930C6aA0U1VhM03IfNiheR2EwSzRi4hRSpcNqIhhbpeSGU6h38xssVfNcGP0sSwQ " + oidcURL,
+ ],
+ }]
def setupGraphapiOIdC():
- return [{
- 'name': 'setup-graphapi',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'git clone -b master https://github.com/owncloud/graphapi.git /var/www/owncloud/server/apps/graphapi',
- 'cd /var/www/owncloud/server/apps/graphapi',
- 'make vendor',
- 'git clone -b master https://github.com/owncloud/openidconnect.git /var/www/owncloud/server/apps/openidconnect',
- 'cd /var/www/owncloud/server/apps/openidconnect',
- 'make vendor',
- 'cd /var/www/owncloud/server/',
- 'php occ a:e graphapi',
- 'php occ a:e openidconnect',
- 'php occ config:system:set trusted_domains 2 --value=web',
- 'php occ config:system:set openid-connect provider-url --value="https://idp:9130"',
- 'php occ config:system:set openid-connect loginButtonName --value=OpenId-Connect',
- 'php occ config:system:set openid-connect client-id --value=web',
- 'php occ config:system:set openid-connect insecure --value=true --type=bool',
- 'php occ config:system:set cors.allowed-domains 0 --value="http://web"',
- 'php occ config:system:set memcache.local --value="\\\\OC\\\\Memcache\\\\APCu"',
- 'php occ config:system:set web.baseUrl --value="http://web"',
- 'php occ config:list'
- ]
- }]
+ return [{
+ "name": "setup-graphapi",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "git clone -b master https://github.com/owncloud/graphapi.git /var/www/owncloud/server/apps/graphapi",
+ "cd /var/www/owncloud/server/apps/graphapi",
+ "make vendor",
+ "git clone -b master https://github.com/owncloud/openidconnect.git /var/www/owncloud/server/apps/openidconnect",
+ "cd /var/www/owncloud/server/apps/openidconnect",
+ "make vendor",
+ "cd /var/www/owncloud/server/",
+ "php occ a:e graphapi",
+ "php occ a:e openidconnect",
+ "php occ config:system:set trusted_domains 2 --value=web",
+ 'php occ config:system:set openid-connect provider-url --value="https://idp:9130"',
+ "php occ config:system:set openid-connect loginButtonName --value=OpenId-Connect",
+ "php occ config:system:set openid-connect client-id --value=web",
+ "php occ config:system:set openid-connect insecure --value=true --type=bool",
+ 'php occ config:system:set cors.allowed-domains 0 --value="http://web"',
+ 'php occ config:system:set memcache.local --value="\\\\OC\\\\Memcache\\\\APCu"',
+ 'php occ config:system:set web.baseUrl --value="http://web"',
+ "php occ config:list",
+ ],
+ }]
def buildGlauth():
- return[{
- 'name': 'build-glauth',
- 'image': 'owncloudci/golang:1.16',
- 'pull': 'always',
- 'commands': [
- # using ocis-glauth repo because latest glauth doesn't supports the bridge setup
- 'mkdir -p /srv/app/src',
- 'cd /srv/app/src',
- 'mkdir -p github.com/owncloud/',
- 'cd github.com/owncloud/',
- 'git clone http://github.com/owncloud/ocis-glauth',
- 'cd ocis-glauth',
- 'git checkout 44e252306af2dedd72ad00567bbfe9c03322ab20',
- 'make build',
- 'cp bin/ocis-glauth /var/www/owncloud'
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- }, {
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "build-glauth",
+ "image": "owncloudci/golang:1.16",
+ "pull": "always",
+ "commands": [
+ # using ocis-glauth repo because latest glauth doesn't supports the bridge setup
+ "mkdir -p /srv/app/src",
+ "cd /srv/app/src",
+ "mkdir -p github.com/owncloud/",
+ "cd github.com/owncloud/",
+ "git clone http://github.com/owncloud/ocis-glauth",
+ "cd ocis-glauth",
+ "git checkout 44e252306af2dedd72ad00567bbfe9c03322ab20",
+ "make build",
+ "cp bin/ocis-glauth /var/www/owncloud",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }, {
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def glauthService():
- return[{
- 'name': 'glauth',
- 'image': 'owncloudci/golang:1.16',
- 'pull': 'always',
- 'detach': True,
- 'environment' : {
- 'GLAUTH_BACKEND_DATASTORE': 'owncloud',
- 'GLAUTH_BACKEND_BASEDN': 'dc=example,dc=com',
- },
- 'commands': [
- 'cd /var/www/owncloud',
- './ocis-glauth --log-level debug server --backend-server http://owncloud/'
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- }, {
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "glauth",
+ "image": "owncloudci/golang:1.16",
+ "pull": "always",
+ "detach": True,
+ "environment": {
+ "GLAUTH_BACKEND_DATASTORE": "owncloud",
+ "GLAUTH_BACKEND_BASEDN": "dc=example,dc=com",
+ },
+ "commands": [
+ "cd /var/www/owncloud",
+ "./ocis-glauth --log-level debug server --backend-server http://owncloud/",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }, {
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def buildIdP():
- return[{
- 'name': 'build-idp',
- 'image': 'owncloudci/golang:1.16',
- 'pull': 'always',
- 'commands': [
- 'cd /srv/app/src/github.com/owncloud/ocis',
- 'cd idp',
- 'make build',
- 'cp bin/idp /var/www/owncloud'
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- }, {
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "build-idp",
+ "image": "owncloudci/golang:1.16",
+ "pull": "always",
+ "commands": [
+ "cd /srv/app/src/github.com/owncloud/ocis",
+ "cd idp",
+ "make build",
+ "cp bin/idp /var/www/owncloud",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }, {
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def idpService():
- return[{
- 'name': 'idp',
- 'image': 'owncloudci/golang:1.16',
- 'pull': 'always',
- 'detach': True,
- 'environment' : {
- 'LDAP_BASEDN': 'dc=example,dc=com',
- 'LDAP_BINDDN': 'cn=admin,ou=users,dc=example,dc=com',
- 'LDAP_URI': 'ldap://glauth:9125',
- 'IDP_IDENTIFIER_REGISTRATION_CONF': '/srv/config/drone/identifier-registration-oc10.yml',
- 'IDP_ISS': 'https://idp:9130',
- 'LDAP_BINDPW': 'admin',
- 'LDAP_SCOPE': 'sub',
- 'LDAP_LOGIN_ATTRIBUTE': 'uid',
- 'LDAP_EMAIL_ATTRIBUTE': 'mail',
- 'LDAP_NAME_ATTRIBUTE': 'givenName',
- 'LDAP_UUID_ATTRIBUTE': 'uid',
- 'LDAP_UUID_ATTRIBUTE_TYPE': 'text',
- 'LDAP_FILTER': "(objectClass=posixaccount)"
- },
- 'commands': [
- 'cd /var/www/owncloud',
- './idp --log-level debug server --signing-kid gen1-2020-02-27',
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- }, {
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "idp",
+ "image": "owncloudci/golang:1.16",
+ "pull": "always",
+ "detach": True,
+ "environment": {
+ "LDAP_BASEDN": "dc=example,dc=com",
+ "LDAP_BINDDN": "cn=admin,ou=users,dc=example,dc=com",
+ "LDAP_URI": "ldap://glauth:9125",
+ "IDP_IDENTIFIER_REGISTRATION_CONF": "/srv/config/drone/identifier-registration-oc10.yml",
+ "IDP_ISS": "https://idp:9130",
+ "LDAP_BINDPW": "admin",
+ "LDAP_SCOPE": "sub",
+ "LDAP_LOGIN_ATTRIBUTE": "uid",
+ "LDAP_EMAIL_ATTRIBUTE": "mail",
+ "LDAP_NAME_ATTRIBUTE": "givenName",
+ "LDAP_UUID_ATTRIBUTE": "uid",
+ "LDAP_UUID_ATTRIBUTE_TYPE": "text",
+ "LDAP_FILTER": "(objectClass=posixaccount)",
+ },
+ "commands": [
+ "cd /var/www/owncloud",
+ "./idp --log-level debug server --signing-kid gen1-2020-02-27",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }, {
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def ocisService():
- return[{
- 'name': 'ocis',
- 'image': 'owncloudci/golang:1.16',
- 'pull': 'always',
- 'detach': True,
- 'environment' : {
- 'OCIS_URL': 'https://ocis:9200',
- 'STORAGE_HOME_DRIVER': 'owncloud',
- 'STORAGE_USERS_DRIVER': 'owncloud',
- 'STORAGE_DRIVER_OCIS_ROOT': '/srv/app/tmp/ocis/storage/users',
- 'STORAGE_DRIVER_LOCAL_ROOT': '/srv/app/tmp/ocis/local/root',
- 'STORAGE_DRIVER_OWNCLOUD_DATADIR': '/srv/app/tmp/ocis/owncloud/data',
- 'STORAGE_METADATA_ROOT': '/srv/app/tmp/ocis/metadata',
- 'STORAGE_DRIVER_OWNCLOUD_REDIS_ADDR': 'redis:6379',
- 'PROXY_OIDC_INSECURE': 'true',
- 'STORAGE_HOME_DATA_SERVER_URL': 'http://ocis:9155/data',
- 'STORAGE_USERS_DATA_SERVER_URL': 'http://ocis:9158/data',
- 'WEB_UI_CONFIG': '/srv/config/drone/ocis-config.json',
- 'WEB_ASSET_PATH': '/var/www/owncloud/web/dist',
- 'IDP_IDENTIFIER_REGISTRATION_CONF': '/srv/config/drone/identifier-registration.yml',
- 'ACCOUNTS_DATA_PATH': '/srv/app/tmp/ocis-accounts/',
- 'PROXY_ENABLE_BASIC_AUTH': True,
- },
- 'commands': [
- 'cd /var/www/owncloud/ocis-build',
- 'mkdir -p /srv/app/tmp/ocis/owncloud/data/',
- 'mkdir -p /srv/app/tmp/ocis/storage/users/',
- './ocis server'
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- }, {
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "ocis",
+ "image": "owncloudci/golang:1.16",
+ "pull": "always",
+ "detach": True,
+ "environment": {
+ "OCIS_URL": "https://ocis:9200",
+ "STORAGE_HOME_DRIVER": "owncloud",
+ "STORAGE_USERS_DRIVER": "owncloud",
+ "STORAGE_DRIVER_OCIS_ROOT": "/srv/app/tmp/ocis/storage/users",
+ "STORAGE_DRIVER_LOCAL_ROOT": "/srv/app/tmp/ocis/local/root",
+ "STORAGE_DRIVER_OWNCLOUD_DATADIR": "/srv/app/tmp/ocis/owncloud/data",
+ "STORAGE_METADATA_ROOT": "/srv/app/tmp/ocis/metadata",
+ "STORAGE_DRIVER_OWNCLOUD_REDIS_ADDR": "redis:6379",
+ "PROXY_OIDC_INSECURE": "true",
+ "STORAGE_HOME_DATA_SERVER_URL": "http://ocis:9155/data",
+ "STORAGE_USERS_DATA_SERVER_URL": "http://ocis:9158/data",
+ "WEB_UI_CONFIG": "/srv/config/drone/ocis-config.json",
+ "WEB_ASSET_PATH": "/var/www/owncloud/web/dist",
+ "IDP_IDENTIFIER_REGISTRATION_CONF": "/srv/config/drone/identifier-registration.yml",
+ "ACCOUNTS_DATA_PATH": "/srv/app/tmp/ocis-accounts/",
+ "PROXY_ENABLE_BASIC_AUTH": True,
+ },
+ "commands": [
+ "cd /var/www/owncloud/ocis-build",
+ "mkdir -p /srv/app/tmp/ocis/owncloud/data/",
+ "mkdir -p /srv/app/tmp/ocis/storage/users/",
+ "./ocis server",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }, {
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def buildOcisWeb():
- return[{
- 'name': 'build-ocis-web',
- 'image': 'owncloudci/golang:1.16',
- 'pull': 'always',
- 'commands': [
- 'cd /srv/app/src/github.com/owncloud/ocis',
- 'cd web',
- 'make build',
- 'cp bin/web /var/www/owncloud/ocis-web'
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- }, {
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ return [{
+ "name": "build-ocis-web",
+ "image": "owncloudci/golang:1.16",
+ "pull": "always",
+ "commands": [
+ "cd /srv/app/src/github.com/owncloud/ocis",
+ "cd web",
+ "make build",
+ "cp bin/web /var/www/owncloud/ocis-web",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }, {
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
# Ocis-web service just for the oc10 tests
def ocisWebService():
- return[{
- 'name': 'web',
- 'image': 'owncloudci/golang:1.16',
- 'pull': 'always',
- 'detach': True,
- 'environment' : {
- 'WEB_UI_CONFIG': '/srv/config/drone/config-oc10-openid.json',
- 'WEB_ASSET_PATH': '/var/www/owncloud/web/dist',
- },
- 'commands': [
- 'cd /var/www/owncloud',
- './ocis-web --log-level debug server',
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- }, {
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
-
+ return [{
+ "name": "web",
+ "image": "owncloudci/golang:1.16",
+ "pull": "always",
+ "detach": True,
+ "environment": {
+ "WEB_UI_CONFIG": "/srv/config/drone/config-oc10-openid.json",
+ "WEB_ASSET_PATH": "/var/www/owncloud/web/dist",
+ },
+ "commands": [
+ "cd /var/www/owncloud",
+ "./ocis-web --log-level debug server",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }, {
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def setupNotificationsAppForServer():
- return [{
- 'name': 'install-notifications-app-on-server',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'git clone -b master https://github.com/owncloud/notifications.git /var/www/owncloud/server/apps/notifications',
- 'cd /var/www/owncloud/server',
- 'php occ a:e notifications',
- 'php occ a:l'
- ]
- }]
-
+ return [{
+ "name": "install-notifications-app-on-server",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "git clone -b master https://github.com/owncloud/notifications.git /var/www/owncloud/server/apps/notifications",
+ "cd /var/www/owncloud/server",
+ "php occ a:e notifications",
+ "php occ a:l",
+ ],
+ }]
def setupServerAndAppsForIntegrationApp(logLevel):
- return [{
- 'name': 'setup-server-%s' % config['app'],
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/server/',
- 'php occ a:e testing',
- 'php occ a:e web',
- 'php occ a:l',
- 'php occ config:system:set trusted_domains 1 --value=owncloud',
- 'php occ log:manage --level %s' % logLevel,
- 'php occ config:list',
- 'php occ config:system:set skeletondirectory --value=/var/www/owncloud/server/apps/testing/data/webUISkeleton',
- 'php occ config:system:set enable_previews --type=boolean --value=false',
- 'php occ config:system:set web.baseUrl --value="http://owncloud/index.php/apps/web"',
- 'php occ config:system:set sharing.federation.allowHttpFallback --value=true --type=bool'
- ]
- }]
+ return [{
+ "name": "setup-server-%s" % config["app"],
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/server/",
+ "php occ a:e testing",
+ "php occ a:e web",
+ "php occ a:l",
+ "php occ config:system:set trusted_domains 1 --value=owncloud",
+ "php occ log:manage --level %s" % logLevel,
+ "php occ config:list",
+ "php occ config:system:set skeletondirectory --value=/var/www/owncloud/server/apps/testing/data/webUISkeleton",
+ "php occ config:system:set enable_previews --type=boolean --value=false",
+ 'php occ config:system:set web.baseUrl --value="http://owncloud/index.php/apps/web"',
+ "php occ config:system:set sharing.federation.allowHttpFallback --value=true --type=bool",
+ ],
+ }]
def setupServerAndApp(logLevel):
- return [{
- 'name': 'setup-server-%s' % config['app'],
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/server/',
- 'php occ a:e testing',
- 'php occ a:l',
- 'php occ config:system:set trusted_domains 1 --value=owncloud',
- 'php occ config:system:set cors.allowed-domains 0 --value=http://web',
- 'php occ log:manage --level %s' % logLevel,
- 'php occ config:list',
- 'php occ config:system:set skeletondirectory --value=/var/www/owncloud/server/apps/testing/data/webUISkeleton',
- 'php occ config:system:set web.baseUrl --value="http://web"',
- 'php occ config:system:set sharing.federation.allowHttpFallback --value=true --type=bool'
- ]
- }]
+ return [{
+ "name": "setup-server-%s" % config["app"],
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/server/",
+ "php occ a:e testing",
+ "php occ a:l",
+ "php occ config:system:set trusted_domains 1 --value=owncloud",
+ "php occ config:system:set cors.allowed-domains 0 --value=http://web",
+ "php occ log:manage --level %s" % logLevel,
+ "php occ config:list",
+ "php occ config:system:set skeletondirectory --value=/var/www/owncloud/server/apps/testing/data/webUISkeleton",
+ 'php occ config:system:set web.baseUrl --value="http://web"',
+ "php occ config:system:set sharing.federation.allowHttpFallback --value=true --type=bool",
+ ],
+ }]
def setupFedServerAndApp(logLevel):
- return [{
- 'name': 'setup-fed-server-%s' % config['app'],
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/federated/',
- 'php occ a:e testing',
- 'php occ config:system:set trusted_domains 2 --value=federated',
- 'php occ log:manage --level %s' % logLevel,
- 'php occ config:list',
- 'php occ config:system:set skeletondirectory --value=/var/www/owncloud/federated/apps/testing/data/webUISkeleton',
- 'php occ config:system:set sharing.federation.allowHttpFallback --value=true --type=bool'
- ]
- }]
+ return [{
+ "name": "setup-fed-server-%s" % config["app"],
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/federated/",
+ "php occ a:e testing",
+ "php occ config:system:set trusted_domains 2 --value=federated",
+ "php occ log:manage --level %s" % logLevel,
+ "php occ config:list",
+ "php occ config:system:set skeletondirectory --value=/var/www/owncloud/federated/apps/testing/data/webUISkeleton",
+ "php occ config:system:set sharing.federation.allowHttpFallback --value=true --type=bool",
+ ],
+ }]
def fixPermissions():
- return [{
- 'name': 'fix-permissions',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/server',
- 'chown www-data * -R'
- ]
- }]
+ return [{
+ "name": "fix-permissions",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/server",
+ "chown www-data * -R",
+ ],
+ }]
def fixPermissionsFederated():
- return [{
- 'name': 'fix-permissions-federated',
- 'image': 'owncloudci/php:7.4',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/federated',
- 'chown www-data * -R'
- ]
- }]
+ return [{
+ "name": "fix-permissions-federated",
+ "image": "owncloudci/php:7.4",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/federated",
+ "chown www-data * -R",
+ ],
+ }]
def owncloudLog():
- return [{
- 'name': 'owncloud-log',
- 'image': 'owncloud/ubuntu:16.04',
- 'pull': 'always',
- 'detach': True,
- 'commands': [
- 'tail -f /var/www/owncloud/server/data/owncloud.log'
- ]
- }]
+ return [{
+ "name": "owncloud-log",
+ "image": "owncloud/ubuntu:16.04",
+ "pull": "always",
+ "detach": True,
+ "commands": [
+ "tail -f /var/www/owncloud/server/data/owncloud.log",
+ ],
+ }]
def owncloudLogFederated():
- return [{
- 'name': 'owncloud-federated-log',
- 'image': 'owncloud/ubuntu:16.04',
- 'pull': 'always',
- 'detach': True,
- 'commands': [
- 'tail -f /var/www/owncloud/federated/data/owncloud.log'
- ]
- }]
+ return [{
+ "name": "owncloud-federated-log",
+ "image": "owncloud/ubuntu:16.04",
+ "pull": "always",
+ "detach": True,
+ "commands": [
+ "tail -f /var/www/owncloud/federated/data/owncloud.log",
+ ],
+ }]
def copyFilesForUpload():
- return [{
- 'name': 'copy-files-for-upload',
- 'pull': 'always',
- 'image': 'owncloudci/php:7.4',
- 'volumes': [{
- 'name': 'uploads',
- 'path': '/filesForUpload'
- }],
- 'commands': [
- 'ls -la /filesForUpload',
- 'cp -a /var/www/owncloud/web/tests/acceptance/filesForUpload/. /filesForUpload',
- 'ls -la /filesForUpload'
- ]
- }]
+ return [{
+ "name": "copy-files-for-upload",
+ "pull": "always",
+ "image": "owncloudci/php:7.4",
+ "volumes": [{
+ "name": "uploads",
+ "path": "/filesForUpload",
+ }],
+ "commands": [
+ "ls -la /filesForUpload",
+ "cp -a /var/www/owncloud/web/tests/acceptance/filesForUpload/. /filesForUpload",
+ "ls -la /filesForUpload",
+ ],
+ }]
def runWebuiAcceptanceTests(suite, alternateSuiteName, filterTags, extraEnvironment, browser, visualTesting, screenShots):
- environment = {}
- if (filterTags != ''):
- environment['TEST_TAGS'] = filterTags
- if isLocalBrowser(browser):
- environment['LOCAL_UPLOAD_DIR'] = '/uploads'
- if type(suite) == "list":
- paths = ""
- for path in suite:
- paths = paths + "tests/acceptance/features/" + path + " "
- environment['TEST_PATHS'] = paths
- elif (suite != 'all'):
- environment['TEST_CONTEXT'] = suite
- else:
- environment['TEST_CONTEXT'] = suite
- environment['BROWSER_NAME'] = getSaucelabsBrowserName(browser)
- environment['SELENIUM_PORT'] = '4445'
- environment['SAUCELABS_TUNNEL_NAME'] = getSaucelabsTunnelName(alternateSuiteName, browser)
- environment['SAUCE_USERNAME'] = {
- 'from_secret': 'sauce_username'
- }
- environment['SAUCE_ACCESS_KEY'] = {
- 'from_secret': 'sauce_access_key'
- }
-
- if (visualTesting):
- environment['VISUAL_TEST'] = 'true'
- if (screenShots):
- environment['SCREENSHOTS'] = "true"
- environment['SERVER_HOST'] = 'http://web'
- environment['BACKEND_HOST'] = 'http://owncloud'
-
- for env in extraEnvironment:
- environment[env] = extraEnvironment[env]
-
- return [{
- 'name': 'webui-acceptance-tests',
- 'image': 'owncloudci/nodejs:12',
- 'pull': 'always',
- 'environment': environment,
- 'commands': [
- 'cd /var/www/owncloud/web',
- './tests/acceptance/run.sh',
- ],
- 'volumes': [{
- 'name': 'gopath',
- 'path': '/srv/app',
- },{
- 'name': 'configs',
- 'path': '/srv/config'
- }],
- }]
+ environment = {}
+ if (filterTags != ""):
+ environment["TEST_TAGS"] = filterTags
+ if isLocalBrowser(browser):
+ environment["LOCAL_UPLOAD_DIR"] = "/uploads"
+ if type(suite) == "list":
+ paths = ""
+ for path in suite:
+ paths = paths + "tests/acceptance/features/" + path + " "
+ environment["TEST_PATHS"] = paths
+ elif (suite != "all"):
+ environment["TEST_CONTEXT"] = suite
+ else:
+ environment["TEST_CONTEXT"] = suite
+ environment["BROWSER_NAME"] = getSaucelabsBrowserName(browser)
+ environment["SELENIUM_PORT"] = "4445"
+ environment["SAUCELABS_TUNNEL_NAME"] = getSaucelabsTunnelName(alternateSuiteName, browser)
+ environment["SAUCE_USERNAME"] = {
+ "from_secret": "sauce_username",
+ }
+ environment["SAUCE_ACCESS_KEY"] = {
+ "from_secret": "sauce_access_key",
+ }
+
+ if (visualTesting):
+ environment["VISUAL_TEST"] = "true"
+ if (screenShots):
+ environment["SCREENSHOTS"] = "true"
+ environment["SERVER_HOST"] = "http://web"
+ environment["BACKEND_HOST"] = "http://owncloud"
+
+ for env in extraEnvironment:
+ environment[env] = extraEnvironment[env]
+
+ return [{
+ "name": "webui-acceptance-tests",
+ "image": "owncloudci/nodejs:12",
+ "pull": "always",
+ "environment": environment,
+ "commands": [
+ "cd /var/www/owncloud/web",
+ "./tests/acceptance/run.sh",
+ ],
+ "volumes": [{
+ "name": "gopath",
+ "path": "/srv/app",
+ }, {
+ "name": "configs",
+ "path": "/srv/config",
+ }],
+ }]
def redisService():
- return[{
- 'name': 'redis',
- 'image': 'redis:6-alpine',
- 'pull': 'always',
- }]
+ return [{
+ "name": "redis",
+ "image": "redis:6-alpine",
+ "pull": "always",
+ }]
def cacheOcisPipeline(ctx):
- return[{
- 'kind': 'pipeline',
- 'type': 'docker',
- 'name': 'cache-ocis',
- 'workspace' : {
- 'base': '/var/www/owncloud',
- 'path': config['app']
- },
- 'steps':
- buildOCISCache() +
- cacheOcis() +
- listRemoteCache(),
- 'depends_on': [],
- 'trigger': {
- 'ref': [
- 'refs/heads/master',
- 'refs/tags/**',
- 'refs/pull/**',
- ]
- }
- }]
+ return [{
+ "kind": "pipeline",
+ "type": "docker",
+ "name": "cache-ocis",
+ "workspace": {
+ "base": "/var/www/owncloud",
+ "path": config["app"],
+ },
+ "steps": buildOCISCache() +
+ cacheOcis() +
+ listRemoteCache(),
+ "depends_on": [],
+ "trigger": {
+ "ref": [
+ "refs/heads/master",
+ "refs/tags/**",
+ "refs/pull/**",
+ ],
+ },
+ }]
def getOcis():
- return [{
- 'name': 'get-ocis-from-cache',
- 'image': 'minio/mc:RELEASE.2020-12-10T01-26-17Z',
- 'failure': 'ignore',
- 'environment': {
- 'MC_HOST': {
- 'from_secret': 'cache_s3_endpoint'
- },
- 'AWS_ACCESS_KEY_ID': {
- 'from_secret': 'cache_s3_access_key'
- },
- 'AWS_SECRET_ACCESS_KEY': {
- 'from_secret': 'cache_s3_secret_key'
- },
- },
- 'commands': [
- 'source /var/www/owncloud/web/.drone.env',
- 'mkdir -p /var/www/owncloud/ocis-build',
- 'mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY',
- 'mc mirror s3/owncloud/web/ocis-build/$OCIS_COMMITID /var/www/owncloud/ocis-build/',
- 'chmod +x /var/www/owncloud/ocis-build/ocis',
- ]
- }]
+ return [{
+ "name": "get-ocis-from-cache",
+ "image": "minio/mc:RELEASE.2020-12-10T01-26-17Z",
+ "failure": "ignore",
+ "environment": {
+ "MC_HOST": {
+ "from_secret": "cache_s3_endpoint",
+ },
+ "AWS_ACCESS_KEY_ID": {
+ "from_secret": "cache_s3_access_key",
+ },
+ "AWS_SECRET_ACCESS_KEY": {
+ "from_secret": "cache_s3_secret_key",
+ },
+ },
+ "commands": [
+ "source /var/www/owncloud/web/.drone.env",
+ "mkdir -p /var/www/owncloud/ocis-build",
+ "mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY",
+ "mc mirror s3/owncloud/web/ocis-build/$OCIS_COMMITID /var/www/owncloud/ocis-build/",
+ "chmod +x /var/www/owncloud/ocis-build/ocis",
+ ],
+ }]
def buildOCISCache():
- return[{
- 'name': 'build-ocis',
- 'image': 'owncloudci/golang:1.16',
- 'pull': 'always',
- 'commands': [
- './tests/drone/build-ocis.sh'
- ],
- }]
+ return [{
+ "name": "build-ocis",
+ "image": "owncloudci/golang:1.16",
+ "pull": "always",
+ "commands": [
+ "./tests/drone/build-ocis.sh",
+ ],
+ }]
def cacheOcis():
- return [{
- 'name': 'upload-ocis-bin',
- 'image': 'plugins/s3',
- 'pull': 'if-not-exists',
- 'settings': {
- 'bucket': 'owncloud',
- 'endpoint': {
- 'from_secret': 'cache_s3_endpoint'
- },
- 'path_style': True,
- 'source': '/var/www/owncloud/ocis-build/**/*',
- 'strip_prefix': '/var/www/owncloud/ocis-build',
- 'target': '/web/ocis-build/',
- 'access_key': {
- 'from_secret': 'cache_s3_access_key'
- },
- 'secret_key': {
- 'from_secret': 'cache_s3_secret_key'
- },
- },
- }]
+ return [{
+ "name": "upload-ocis-bin",
+ "image": "plugins/s3",
+ "pull": "if-not-exists",
+ "settings": {
+ "bucket": "owncloud",
+ "endpoint": {
+ "from_secret": "cache_s3_endpoint",
+ },
+ "path_style": True,
+ "source": "/var/www/owncloud/ocis-build/**/*",
+ "strip_prefix": "/var/www/owncloud/ocis-build",
+ "target": "/web/ocis-build/",
+ "access_key": {
+ "from_secret": "cache_s3_access_key",
+ },
+ "secret_key": {
+ "from_secret": "cache_s3_secret_key",
+ },
+ },
+ }]
def listRemoteCache():
- return [{
- 'name': 'list-ocis-bin-cache',
- 'image': 'minio/mc:RELEASE.2020-12-10T01-26-17Z',
- 'failure': 'ignore',
- 'environment': {
- 'MC_HOST': {
- 'from_secret': 'cache_s3_endpoint'
- },
- 'AWS_ACCESS_KEY_ID': {
- 'from_secret': 'cache_s3_access_key'
- },
- 'AWS_SECRET_ACCESS_KEY': {
- 'from_secret': 'cache_s3_secret_key'
- },
- },
- 'commands': [
- 'mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY',
- 'mc find s3/owncloud/web/ocis-build',
- ]
-}]
+ return [{
+ "name": "list-ocis-bin-cache",
+ "image": "minio/mc:RELEASE.2020-12-10T01-26-17Z",
+ "failure": "ignore",
+ "environment": {
+ "MC_HOST": {
+ "from_secret": "cache_s3_endpoint",
+ },
+ "AWS_ACCESS_KEY_ID": {
+ "from_secret": "cache_s3_access_key",
+ },
+ "AWS_SECRET_ACCESS_KEY": {
+ "from_secret": "cache_s3_secret_key",
+ },
+ },
+ "commands": [
+ "mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY",
+ "mc find s3/owncloud/web/ocis-build",
+ ],
+ }]
def uploadScreenshots():
- return [{
- 'name': 'upload-screenshots',
- 'image': 'plugins/s3',
- 'pull': 'if-not-exists',
- 'settings': {
- 'bucket': 'owncloud',
- 'endpoint': {
- 'from_secret': 'cache_s3_endpoint',
- },
- 'path_style': True,
- 'source': '/var/www/owncloud/web/tests/reports/screenshots/**/*',
- 'strip_prefix': '/var/www/owncloud/web/tests/reports/screenshots',
- 'target': '/web/screenshots/${DRONE_BUILD_NUMBER}',
- },
- 'environment': {
- 'AWS_ACCESS_KEY_ID': {
- 'from_secret': 'cache_s3_access_key'
- },
- 'AWS_SECRET_ACCESS_KEY': {
- 'from_secret': 'cache_s3_secret_key'
- },
- },
- 'when': {
- 'status': [
- 'failure'
- ],
- 'event': [
- 'pull_request'
- ]
- },
- }]
+ return [{
+ "name": "upload-screenshots",
+ "image": "plugins/s3",
+ "pull": "if-not-exists",
+ "settings": {
+ "bucket": "owncloud",
+ "endpoint": {
+ "from_secret": "cache_s3_endpoint",
+ },
+ "path_style": True,
+ "source": "/var/www/owncloud/web/tests/reports/screenshots/**/*",
+ "strip_prefix": "/var/www/owncloud/web/tests/reports/screenshots",
+ "target": "/web/screenshots/${DRONE_BUILD_NUMBER}",
+ },
+ "environment": {
+ "AWS_ACCESS_KEY_ID": {
+ "from_secret": "cache_s3_access_key",
+ },
+ "AWS_SECRET_ACCESS_KEY": {
+ "from_secret": "cache_s3_secret_key",
+ },
+ },
+ "when": {
+ "status": [
+ "failure",
+ ],
+ "event": [
+ "pull_request",
+ ],
+ },
+ }]
def listScreenShots():
- return [{
- 'name': 'list screenshots-visual',
- 'image': 'owncloudci/nodejs:12',
- 'pull': 'always',
- 'commands': [
- 'ls -laR /var/www/owncloud/web/tests/vrt',
- ],
- 'when': {
- 'status': [
- 'failure'
- ],
- }
- }]
+ return [{
+ "name": "list screenshots-visual",
+ "image": "owncloudci/nodejs:12",
+ "pull": "always",
+ "commands": [
+ "ls -laR /var/www/owncloud/web/tests/vrt",
+ ],
+ "when": {
+ "status": [
+ "failure",
+ ],
+ },
+ }]
def uploadVisualDiff():
- return [{
- 'name': 'upload-diff-screenshots',
- 'image': 'plugins/s3',
- 'pull': 'if-not-exists',
- 'settings': {
- 'bucket': 'owncloud',
- 'endpoint': {
- 'from_secret': 'cache_s3_endpoint',
- },
- 'path_style': True,
- 'source': '/var/www/owncloud/web/tests/vrt/diff/**/*',
- 'strip_prefix': '/var/www/owncloud/web/tests/vrt',
- 'target': '/web/screenshots/${DRONE_BUILD_NUMBER}',
- },
- 'environment': {
- 'AWS_ACCESS_KEY_ID': {
- 'from_secret': 'cache_s3_access_key'
- },
- 'AWS_SECRET_ACCESS_KEY': {
- 'from_secret': 'cache_s3_secret_key'
- },
- },
- 'when': {
- 'status': [
- 'failure'
- ],
- 'event': [
- 'pull_request'
- ]
- },
- }]
+ return [{
+ "name": "upload-diff-screenshots",
+ "image": "plugins/s3",
+ "pull": "if-not-exists",
+ "settings": {
+ "bucket": "owncloud",
+ "endpoint": {
+ "from_secret": "cache_s3_endpoint",
+ },
+ "path_style": True,
+ "source": "/var/www/owncloud/web/tests/vrt/diff/**/*",
+ "strip_prefix": "/var/www/owncloud/web/tests/vrt",
+ "target": "/web/screenshots/${DRONE_BUILD_NUMBER}",
+ },
+ "environment": {
+ "AWS_ACCESS_KEY_ID": {
+ "from_secret": "cache_s3_access_key",
+ },
+ "AWS_SECRET_ACCESS_KEY": {
+ "from_secret": "cache_s3_secret_key",
+ },
+ },
+ "when": {
+ "status": [
+ "failure",
+ ],
+ "event": [
+ "pull_request",
+ ],
+ },
+ }]
def uploadVisualScreenShots():
- return [{
- 'name': 'upload-latest-screenshots',
- 'image': 'plugins/s3',
- 'pull': 'if-not-exists',
- 'settings': {
- 'bucket': 'owncloud',
- 'endpoint': {
- 'from_secret': 'cache_s3_endpoint',
- },
- 'path_style': True,
- 'source': '/var/www/owncloud/web/tests/vrt/latest/**/*',
- 'strip_prefix': '/var/www/owncloud/web/tests/vrt',
- 'target': '/web/screenshots/${DRONE_BUILD_NUMBER}',
- },
- 'environment': {
- 'AWS_ACCESS_KEY_ID': {
- 'from_secret': 'cache_s3_access_key'
- },
- 'AWS_SECRET_ACCESS_KEY': {
- 'from_secret': 'cache_s3_secret_key'
- },
- },
- 'when': {
- 'status': [
- 'failure'
- ],
- 'event': [
- 'pull_request'
- ]
- },
- }]
+ return [{
+ "name": "upload-latest-screenshots",
+ "image": "plugins/s3",
+ "pull": "if-not-exists",
+ "settings": {
+ "bucket": "owncloud",
+ "endpoint": {
+ "from_secret": "cache_s3_endpoint",
+ },
+ "path_style": True,
+ "source": "/var/www/owncloud/web/tests/vrt/latest/**/*",
+ "strip_prefix": "/var/www/owncloud/web/tests/vrt",
+ "target": "/web/screenshots/${DRONE_BUILD_NUMBER}",
+ },
+ "environment": {
+ "AWS_ACCESS_KEY_ID": {
+ "from_secret": "cache_s3_access_key",
+ },
+ "AWS_SECRET_ACCESS_KEY": {
+ "from_secret": "cache_s3_secret_key",
+ },
+ },
+ "when": {
+ "status": [
+ "failure",
+ ],
+ "event": [
+ "pull_request",
+ ],
+ },
+ }]
def buildGithubCommentVisualDiff(ctx, suite, alternateSuiteName, runningOnOCIS):
- backend = 'ocis' if runningOnOCIS else 'oc10'
- branch = ctx.build.source if ctx.build.event == 'pull_request' else 'master'
- return [{
- 'name': 'build-github-comment-vrt',
- 'image': 'owncloud/ubuntu:16.04',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/web/tests/vrt/diff',
- 'cd %s' % backend,
- 'ls -la',
- 'echo ":boom: Visual regression tests %s failed. Please find the screenshots inside ...
\\n\\n${DRONE_BUILD_LINK}/${DRONE_JOB_NUMBER}\\n\\n\\n\\n" >> /var/www/owncloud/web/comments.file' % alternateSuiteName,
- 'echo "Diff Image: " >> /var/www/owncloud/web/comments.file',
- 'for f in *.png; do echo \'!\'"[$f]($CACHE_ENDPOINT/owncloud/web/screenshots/${DRONE_BUILD_NUMBER}/diff/%s/$f)" >> /var/www/owncloud/web/comments.file; done' % backend,
- 'cd ../../latest',
- 'cd %s' % backend,
- 'echo "Actual Image: " >> /var/www/owncloud/web/comments.file',
- 'for f in *.png; do echo \'!\'"[$f]($CACHE_ENDPOINT/owncloud/web/screenshots/${DRONE_BUILD_NUMBER}/latest/%s/$f)" >> /var/www/owncloud/web/comments.file; done' % backend,
- 'echo "Comparing Against: " >> /var/www/owncloud/web/comments.file',
- 'for f in *.png; do echo \'!\'"[$f](https://raw.githubusercontent.com/owncloud/web/%s/tests/vrt/baseline/%s/$f)" >> /var/www/owncloud/web/comments.file; done' % (branch, backend),
- 'echo "\n
" >> /var/www/owncloud/web/comments.file',
- 'more /var/www/owncloud/web/comments.file',
- ],
- 'environment': {
- 'TEST_CONTEXT': suite,
- 'CACHE_ENDPOINT': {
- 'from_secret': 'cache_s3_endpoint',
- },
- },
- 'when': {
- 'status': [
- 'failure'
- ],
- 'event': [
- 'pull_request'
- ]
- },
- }]
+ backend = "ocis" if runningOnOCIS else "oc10"
+ branch = ctx.build.source if ctx.build.event == "pull_request" else "master"
+ return [{
+ "name": "build-github-comment-vrt",
+ "image": "owncloud/ubuntu:16.04",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/web/tests/vrt/diff",
+ "cd %s" % backend,
+ "ls -la",
+ 'echo ":boom: Visual regression tests %s failed. Please find the screenshots inside ...
\\n\\n${DRONE_BUILD_LINK}/${DRONE_JOB_NUMBER}\\n\\n\\n\\n" >> /var/www/owncloud/web/comments.file' % alternateSuiteName,
+ 'echo "Diff Image: " >> /var/www/owncloud/web/comments.file',
+ 'for f in *.png; do echo \'!\'"[$f]($CACHE_ENDPOINT/owncloud/web/screenshots/${DRONE_BUILD_NUMBER}/diff/%s/$f)" >> /var/www/owncloud/web/comments.file; done' % backend,
+ "cd ../../latest",
+ "cd %s" % backend,
+ 'echo "Actual Image: " >> /var/www/owncloud/web/comments.file',
+ 'for f in *.png; do echo \'!\'"[$f]($CACHE_ENDPOINT/owncloud/web/screenshots/${DRONE_BUILD_NUMBER}/latest/%s/$f)" >> /var/www/owncloud/web/comments.file; done' % backend,
+ 'echo "Comparing Against: " >> /var/www/owncloud/web/comments.file',
+ 'for f in *.png; do echo \'!\'"[$f](https://raw.githubusercontent.com/owncloud/web/%s/tests/vrt/baseline/%s/$f)" >> /var/www/owncloud/web/comments.file; done' % (branch, backend),
+ 'echo "\n
" >> /var/www/owncloud/web/comments.file',
+ "more /var/www/owncloud/web/comments.file",
+ ],
+ "environment": {
+ "TEST_CONTEXT": suite,
+ "CACHE_ENDPOINT": {
+ "from_secret": "cache_s3_endpoint",
+ },
+ },
+ "when": {
+ "status": [
+ "failure",
+ ],
+ "event": [
+ "pull_request",
+ ],
+ },
+ }]
def buildGithubComment(suite, alternateSuiteName):
- return [{
- 'name': 'build-github-comment',
- 'image': 'owncloud/ubuntu:16.04',
- 'pull': 'always',
- 'commands': [
- 'cd /var/www/owncloud/web/tests/reports/screenshots/',
- 'echo ":boom: Acceptance tests %s failed. Please find the screenshots inside ...
\\n\\n${DRONE_BUILD_LINK}/${DRONE_JOB_NUMBER}\\n\\n\\n\\n" >> /var/www/owncloud/web/comments.file' % alternateSuiteName,
- 'for f in *.png; do echo "### $f\n" \'!\'"[$f]($CACHE_ENDPOINT/owncloud/web/screenshots/${DRONE_BUILD_NUMBER}/$f) \n" >> /var/www/owncloud/web/comments.file; done',
- 'echo "\n
" >> /var/www/owncloud/web/comments.file',
- 'more /var/www/owncloud/web/comments.file',
- ],
- 'environment': {
- 'TEST_CONTEXT': suite,
- 'CACHE_ENDPOINT': {
- 'from_secret': 'cache_s3_endpoint',
- },
- },
- 'when': {
- 'status': [
- 'failure'
- ],
- 'event': [
- 'pull_request'
- ]
- },
- }]
+ return [{
+ "name": "build-github-comment",
+ "image": "owncloud/ubuntu:16.04",
+ "pull": "always",
+ "commands": [
+ "cd /var/www/owncloud/web/tests/reports/screenshots/",
+ 'echo ":boom: Acceptance tests %s failed. Please find the screenshots inside ...
\\n\\n${DRONE_BUILD_LINK}/${DRONE_JOB_NUMBER}\\n\\n\\n\\n" >> /var/www/owncloud/web/comments.file' % alternateSuiteName,
+ 'for f in *.png; do echo "### $f\n" \'!\'"[$f]($CACHE_ENDPOINT/owncloud/web/screenshots/${DRONE_BUILD_NUMBER}/$f) \n" >> /var/www/owncloud/web/comments.file; done',
+ 'echo "\n
" >> /var/www/owncloud/web/comments.file',
+ "more /var/www/owncloud/web/comments.file",
+ ],
+ "environment": {
+ "TEST_CONTEXT": suite,
+ "CACHE_ENDPOINT": {
+ "from_secret": "cache_s3_endpoint",
+ },
+ },
+ "when": {
+ "status": [
+ "failure",
+ ],
+ "event": [
+ "pull_request",
+ ],
+ },
+ }]
def githubComment():
- return [{
- 'name': 'github-comment',
- 'image': 'jmccann/drone-github-comment:1',
- 'pull': 'if-not-exists',
- 'settings': {
- 'message_file': '/var/www/owncloud/web/comments.file',
- },
- 'environment': {
- 'PLUGIN_API_KEY': {
- 'from_secret': 'plugin_api_key'
- },
- },
- 'when': {
- 'status': [
- 'failure'
- ],
- 'event': [
- 'pull_request'
- ]
- },
- }]
+ return [{
+ "name": "github-comment",
+ "image": "jmccann/drone-github-comment:1",
+ "pull": "if-not-exists",
+ "settings": {
+ "message_file": "/var/www/owncloud/web/comments.file",
+ },
+ "environment": {
+ "PLUGIN_API_KEY": {
+ "from_secret": "plugin_api_key",
+ },
+ },
+ "when": {
+ "status": [
+ "failure",
+ ],
+ "event": [
+ "pull_request",
+ ],
+ },
+ }]
+
+def checkStarlark():
+ return [{
+ "kind": "pipeline",
+ "type": "docker",
+ "name": "check-starlark",
+ "steps": [
+ {
+ "name": "format-check-starlark",
+ "image": "owncloudci/bazel-buildifier",
+ "pull": "always",
+ "commands": [
+ "buildifier --mode=check .drone.star",
+ ],
+ },
+ {
+ "name": "show-diff",
+ "image": "owncloudci/bazel-buildifier",
+ "pull": "always",
+ "commands": [
+ "buildifier --mode=fix .drone.star",
+ "git diff",
+ ],
+ "when": {
+ "status": [
+ "failure",
+ ],
+ },
+ },
+ ],
+ "depends_on": [],
+ "trigger": {
+ "ref": [
+ "refs/pull/**",
+ ],
+ },
+ }]
def dependsOn(earlierStages, nextStages):
- for earlierStage in earlierStages:
- for nextStage in nextStages:
- nextStage['depends_on'].append(earlierStage['name'])
+ for earlierStage in earlierStages:
+ for nextStage in nextStages:
+ nextStage["depends_on"].append(earlierStage["name"])