diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index 9f8704e4a..808e5da2c 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -43,17 +43,15 @@ jobs: - name: Install dependencies & build app run: | npm ci - TESTING=true npm run build --if-present + npm run build --if-present - name: Wait for server - run: | - npm install -g wait-on - wait-on -i 500 -t 240000 $CYPRESS_baseUrl + run: npm run wait-on $CYPRESS_baseUrl - name: Enable app & configure server run: | cd cypress - docker-compose exec --env APP_NAME=${{ env.APP_NAME }} -T nextcloud bash /initserver.sh + docker-compose exec --env APP_NAME=${{ env.APP_NAME }} --env BRANCH=${{ env.BRANCH }} -T nextcloud bash /initserver.sh - name: Cypress run uses: cypress-io/github-action@v1 diff --git a/cypress/docker-compose.yml b/cypress/docker-compose.yml index d510b09ec..b3d1da9f1 100644 --- a/cypress/docker-compose.yml +++ b/cypress/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: '3.7' services: nextcloud: @@ -9,8 +9,10 @@ services: environment: CYPRESS_baseUrl: "http://127.0.0.1:8082/index.php" - BRANCH: master + BRANCH: "${BRANCH:-master}" volumes: - - ../:/var/www/html/apps/viewer + # Using fallback to make sure this script doesn't mess + # with the mounting if APP_NAME is not provided. + - ../:/var/www/html/apps/${APP_NAME:-fallback} - ./initserver.sh:/initserver.sh diff --git a/cypress/initserver.sh b/cypress/initserver.sh index 4d997b588..3921fd485 100755 --- a/cypress/initserver.sh +++ b/cypress/initserver.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash echo "APP_NAME: $APP_NAME" +echo "BRANCH: $BRANCH" + chown -R www-data:www-data /var/www/html/data su www-data -c " diff --git a/cypress/start.sh b/cypress/start.sh index 279416743..3a6d90c43 100755 --- a/cypress/start.sh +++ b/cypress/start.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash # RUN THIS SCRIPT FROM THE ROOT FOLDER OF YOUR APP APP_NAME=${PWD##*/} +CYPRESS_baseUrl=http://127.0.0.1:8082/index.php if [[ $APP_NAME == "cypress" ]] then @@ -8,6 +9,10 @@ then else echo "Launching docker server for the $APP_NAME app" cd cypress - docker-compose up -d + docker-compose pull + docker-compose up -d --force-recreate + npm run wait-on $CYPRESS_baseUrl + echo "Nextcloud successfully installed" docker-compose exec --env APP_NAME=$APP_NAME -T nextcloud bash /initserver.sh + echo "Nextcloud successfully configured" fi diff --git a/package-lock.json b/package-lock.json index a218b69c2..49bf9b993 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2781,6 +2781,42 @@ } } }, + "@hapi/address": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==", + "dev": true + }, + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==", + "dev": true + }, + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==", + "dev": true + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, "@jest/console": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", @@ -9528,6 +9564,19 @@ } } }, + "joi": { + "version": "17.2.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.2.1.tgz", + "integrity": "sha512-YT3/4Ln+5YRpacdmfEfrrKh50/kkgX3LgBltjqnlMPIYiZ4hxXZuVJcxmsvxsdeHg9soZfE3qXxHC2tMpCCBOA==", + "dev": true, + "requires": { + "@hapi/address": "^4.1.0", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" + } + }, "js-base64": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", @@ -14911,6 +14960,19 @@ "browser-process-hrtime": "^0.1.2" } }, + "wait-on": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.2.0.tgz", + "integrity": "sha512-U1D9PBgGw2XFc6iZqn45VBubw02VsLwnZWteQ1au4hUVHasTZuFSKRzlTB2dqgLhji16YVI8fgpEpwUdCr8B6g==", + "dev": true, + "requires": { + "axios": "^0.19.2", + "joi": "^17.1.1", + "lodash": "^4.17.19", + "minimist": "^1.2.5", + "rxjs": "^6.5.5" + } + }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", diff --git a/package.json b/package.json index a5bf5ff88..e1d4a3c96 100644 --- a/package.json +++ b/package.json @@ -96,6 +96,7 @@ "url-loader": "^4.1.0", "vue-loader": "^15.9.3", "vue-template-compiler": "^2.6.12", + "wait-on": "^5.2.0", "webpack": "^4.44.1", "webpack-cli": "^3.3.12", "webpack-merge": "^5.1.4"