mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2025-12-21 12:09:40 -06:00
Merge pull request #4878 from owncloud/pnpm
[full-ci][ui tests] Switch yarn to pnpm for oC Web tests
This commit is contained in:
@@ -3,5 +3,5 @@ CORE_COMMITID=032f166f0595f293d6690d097d9019d13ba1a427
|
||||
CORE_BRANCH=master
|
||||
|
||||
# The test runner source for UI tests
|
||||
WEB_COMMITID=c8c69113bc7987d6f14e32e5f1e7bd1b5491b1d9
|
||||
WEB_COMMITID=5550841f55e20f6c90b93fc98295b9ae8aff3e45
|
||||
WEB_BRANCH=master
|
||||
|
||||
108
.drone.star
108
.drone.star
@@ -45,8 +45,7 @@ dirs = {
|
||||
"web": "/drone/src/webTestRunner",
|
||||
"zip": "/drone/src/zip",
|
||||
"webZip": "/drone/src/zip/web.tar.gz",
|
||||
"e2eYarnZip": "/drone/src/zip/e2e.tar.gz",
|
||||
"acceptanceYarnZip": "/drone/src/zip/acceptance.tar.gz",
|
||||
"webPnpmZip": "/drone/src/zip/pnpm-store.tar.gz",
|
||||
"ocisConfig": "tests/config/drone/ocis-config.json",
|
||||
"ocis": "/srv/app/tmp/ocis",
|
||||
"ocisRevaDataRoot": "/srv/app/tmp/ocis/owncloud/data",
|
||||
@@ -299,8 +298,7 @@ def cachePipeline(name, steps):
|
||||
def buildWebCache(ctx):
|
||||
return [
|
||||
cachePipeline("web", generateWebCache(ctx)),
|
||||
cachePipeline("web-acceptance", generateWebAcceptanceCache(ctx)),
|
||||
cachePipeline("web-e2e", generateWebE2ECache(ctx)),
|
||||
cachePipeline("web-pnpm", generateWebPnpmCache(ctx)),
|
||||
]
|
||||
|
||||
def testOcisModules(ctx):
|
||||
@@ -880,7 +878,7 @@ def uiTestPipeline(ctx, filterTags, early_fail, runPart = 1, numberOfParts = 1,
|
||||
"steps": skipIfUnchanged(ctx, "acceptance-tests") +
|
||||
restoreBuildArtifactCache(ctx, "ocis-binary-amd64", "ocis/bin") +
|
||||
restoreWebCache() +
|
||||
restoreWebAcceptanceYarnCache() +
|
||||
restoreWebPnpmCache() +
|
||||
ocisServer(storage, accounts_hash_difficulty) +
|
||||
waitForSeleniumService() +
|
||||
waitForMiddlewareService() +
|
||||
@@ -955,7 +953,7 @@ def e2eTests(ctx):
|
||||
},
|
||||
"commands": [
|
||||
"cd %s" % dirs["web"],
|
||||
"sleep 10 && yarn test:e2e:cucumber tests/e2e/cucumber/**/*[!.oc10].feature",
|
||||
"sleep 10 && pnpm test:e2e:cucumber tests/e2e/cucumber/**/*[!.oc10].feature",
|
||||
],
|
||||
}]
|
||||
|
||||
@@ -963,7 +961,7 @@ def e2eTests(ctx):
|
||||
skipIfUnchanged(ctx, "e2e-tests") + \
|
||||
restoreBuildArtifactCache(ctx, "ocis-binary-amd64", "ocis/bin/ocis") + \
|
||||
restoreWebCache() + \
|
||||
restoreWebE2EYarnCache() + \
|
||||
restoreWebPnpmCache() + \
|
||||
ocisServer("ocis", 4, []) + \
|
||||
e2e_test_ocis + \
|
||||
uploadTracingResult(ctx) + \
|
||||
@@ -1069,7 +1067,7 @@ def settingsUITests(ctx, storage = "ocis", accounts_hash_difficulty = 4):
|
||||
waitForSeleniumService() +
|
||||
waitForMiddlewareService() +
|
||||
restoreWebCache() +
|
||||
restoreWebAcceptanceYarnCache() +
|
||||
restoreWebPnpmCache() +
|
||||
[
|
||||
{
|
||||
"name": "WebUIAcceptanceTests",
|
||||
@@ -2915,76 +2913,39 @@ def cloneWeb():
|
||||
],
|
||||
}
|
||||
|
||||
def generateWebAcceptanceCache(ctx):
|
||||
def generateWebPnpmCache(ctx):
|
||||
return [
|
||||
getDroneEnvAndCheckScript(ctx),
|
||||
checkForWebCache("acceptance"),
|
||||
checkForWebCache("web-pnpm"),
|
||||
cloneWeb(),
|
||||
{
|
||||
"name": "install-yarn",
|
||||
"name": "install-pnpm",
|
||||
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||
"commands": [
|
||||
"cd %s" % dirs["web"],
|
||||
"cd tests/acceptance",
|
||||
"retry -t 3 'yarn install --immutable --frozen-lockfile'",
|
||||
"pnpm config set store-dir ./.pnpm-store",
|
||||
"retry -t 3 'pnpm install'",
|
||||
],
|
||||
},
|
||||
{
|
||||
"name": "zip-yarn",
|
||||
"name": "zip-pnpm",
|
||||
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||
"commands": [
|
||||
# zip the yarn deps before caching
|
||||
# zip the pnpm deps before caching
|
||||
"if [ ! -d '%s' ]; then mkdir -p %s; fi" % (dirs["zip"], dirs["zip"]),
|
||||
"cd %s" % dirs["web"],
|
||||
"cd tests/acceptance",
|
||||
"tar -czvf %s .yarn" % dirs["acceptanceYarnZip"],
|
||||
"tar -czvf %s .pnpm-store" % dirs["webPnpmZip"],
|
||||
],
|
||||
},
|
||||
{
|
||||
"name": "cache-yarn",
|
||||
"name": "cache-pnpm",
|
||||
"image": MINIO_MC,
|
||||
"environment": MINIO_MC_ENV,
|
||||
"commands": [
|
||||
"source ./.drone.env",
|
||||
# cache using the minio/mc client to the public bucket (long term bucket)
|
||||
"mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY",
|
||||
"mc cp -r -a %s s3/$CACHE_BUCKET/ocis/web-test-runner/$WEB_COMMITID" % dirs["acceptanceYarnZip"],
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
def generateWebE2ECache(ctx):
|
||||
return [
|
||||
getDroneEnvAndCheckScript(ctx),
|
||||
checkForWebCache("e2e"),
|
||||
cloneWeb(),
|
||||
{
|
||||
"name": "install-yarn",
|
||||
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||
"commands": [
|
||||
"cd %s" % dirs["web"],
|
||||
"retry -t 3 'yarn install --immutable --frozen-lockfile'",
|
||||
],
|
||||
},
|
||||
{
|
||||
"name": "zip-yarn",
|
||||
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||
"commands": [
|
||||
# zip the yarn deps before caching
|
||||
"if [ ! -d '%s' ]; then mkdir -p %s; fi" % (dirs["zip"], dirs["zip"]),
|
||||
"cd %s" % dirs["web"],
|
||||
"tar -czvf %s .yarn" % dirs["e2eYarnZip"],
|
||||
],
|
||||
},
|
||||
{
|
||||
"name": "cache-yarn",
|
||||
"image": MINIO_MC,
|
||||
"environment": MINIO_MC_ENV,
|
||||
"commands": [
|
||||
"source ./.drone.env",
|
||||
# cache using the minio/mc client to the public bucket (long term bucket)
|
||||
"mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY",
|
||||
"mc cp -r -a %s s3/$CACHE_BUCKET/ocis/web-test-runner/$WEB_COMMITID" % dirs["e2eYarnZip"],
|
||||
"mc cp -r -a %s s3/$CACHE_BUCKET/ocis/web-test-runner/$WEB_COMMITID" % dirs["webPnpmZip"],
|
||||
],
|
||||
},
|
||||
]
|
||||
@@ -3035,46 +2996,25 @@ def restoreWebCache():
|
||||
],
|
||||
}]
|
||||
|
||||
def restoreWebE2EYarnCache():
|
||||
def restoreWebPnpmCache():
|
||||
return [{
|
||||
"name": "restore-web-e2e-yarn-cache",
|
||||
"name": "restore-web-pnpm-cache",
|
||||
"image": MINIO_MC,
|
||||
"environment": MINIO_MC_ENV,
|
||||
"commands": [
|
||||
"source ./.drone.env",
|
||||
"mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY",
|
||||
"mc cp -r -a s3/$CACHE_BUCKET/ocis/web-test-runner/$WEB_COMMITID/e2e.tar.gz %s" % dirs["zip"],
|
||||
"mc cp -r -a s3/$CACHE_BUCKET/ocis/web-test-runner/$WEB_COMMITID/pnpm-store.tar.gz %s" % dirs["zip"],
|
||||
],
|
||||
}, {
|
||||
# we need to install again because the node_modules are not cached
|
||||
"name": "unzip-and-install-yarn-e2e",
|
||||
"name": "unzip-and-install-pnpm",
|
||||
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||
"commands": [
|
||||
"cd %s" % dirs["web"],
|
||||
"rm -rf .yarn",
|
||||
"tar -xvf %s" % dirs["e2eYarnZip"],
|
||||
"retry -t 3 'yarn install --immutable'",
|
||||
],
|
||||
}]
|
||||
|
||||
def restoreWebAcceptanceYarnCache():
|
||||
return [{
|
||||
"name": "restore-web-acceptance-yarn-cache",
|
||||
"image": MINIO_MC,
|
||||
"environment": MINIO_MC_ENV,
|
||||
"commands": [
|
||||
"source ./.drone.env",
|
||||
"mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY",
|
||||
"mc cp -r -a s3/$CACHE_BUCKET/ocis/web-test-runner/$WEB_COMMITID/acceptance.tar.gz %s" % dirs["zip"],
|
||||
],
|
||||
}, {
|
||||
# we need to install again because the node_modules are not cached
|
||||
"name": "unzip-and-install-yarn-acceptance",
|
||||
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||
"commands": [
|
||||
"cd %s/tests/acceptance" % dirs["web"],
|
||||
"rm -rf .yarn",
|
||||
"tar -xvf %s -C ." % dirs["acceptanceYarnZip"],
|
||||
"retry -t 3 'yarn install --immutable'",
|
||||
"rm -rf .pnpm-store",
|
||||
"tar -xvf %s" % dirs["webPnpmZip"],
|
||||
"pnpm config set store-dir ./.pnpm-store",
|
||||
"retry -t 3 'pnpm install'",
|
||||
],
|
||||
}]
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,6 +11,7 @@ services/*/checkstyle.xml
|
||||
node_modules/
|
||||
yarn-error.log
|
||||
yarn.lock
|
||||
.pnpm-store/
|
||||
|
||||
# build artifacts
|
||||
*/bin
|
||||
|
||||
@@ -162,7 +162,7 @@ Open https://ocis.owncloud.test in your browser and accept the invalid certifica
|
||||
In case you want to run ownCloud Web from a development branch together with this deployment example (e.g. for feature development for the app provider frontend) you can use this deployment example with the local setup and some additional steps as described below.
|
||||
|
||||
1. Clone the [ownCloud Web repository](https://github.com/owncloud/web) on your development machine.
|
||||
2. Run `yarn && yarn build:w` for `web`, so that it creates and continuously updates the `dist` folder for web.
|
||||
2. Run `pnpm && pnpm build:w` for `web`, so that it creates and continuously updates the `dist` folder for web.
|
||||
3. Add the dist folder as read only volume to `volumes` section of the `ocis` service in the `docker-compose.yml` file:
|
||||
```yaml
|
||||
- /your/local/path/to/web/dist/:/web/dist:ro
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
SHELL := bash
|
||||
NAME := web
|
||||
WEB_ASSETS_VERSION = v6.0.0-rc.2
|
||||
WEB_ASSETS_VERSION = v6.0.0-rc.4
|
||||
|
||||
include ../../.make/recursion.mk
|
||||
|
||||
|
||||
Reference in New Issue
Block a user