kopia lustrzana https://github.com/nextcloud/social
ci: run cypress like viewer does
Cypress was not working in CI. Use the CI scripts of the viewer app instead they are fairly up to date and well maintained. Changes compared to viewer: * app name * default npm version * default node version * run composer install during "Install dependencies and build app" Signed-off-by: Max <max@nextcloud.com>pull/1456/head
rodzic
6a2eee2c21
commit
c78ecfc30a
|
@ -11,50 +11,77 @@ env:
|
|||
APP_NAME: social
|
||||
BRANCH: ${{ github.base_ref }}
|
||||
CYPRESS_baseUrl: http://127.0.0.1:8082/index.php
|
||||
TESTING: true
|
||||
|
||||
jobs:
|
||||
cypress:
|
||||
init:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# run 2 copies of the current job in parallel
|
||||
containers: [1, 2]
|
||||
node-version: ['12']
|
||||
php-versions: ['7.4']
|
||||
|
||||
name: Runner ${{ matrix.containers }}
|
||||
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup server
|
||||
run: |
|
||||
cd cypress
|
||||
docker-compose up -d
|
||||
- name: Set up node ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@v1.1
|
||||
id: versions
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
fallbackNode: '^16'
|
||||
fallbackNpm: '^7'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
|
||||
|
||||
- name: Install dependencies & build app
|
||||
run: |
|
||||
npm ci
|
||||
composer install
|
||||
TESTING=true npm run build --if-present
|
||||
- name: Wait for server
|
||||
npm run build --if-present
|
||||
|
||||
- name: Save context
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
key: cypress-context-${{ github.run_id }}
|
||||
path: /home/runner/work/social
|
||||
|
||||
cypress:
|
||||
runs-on: ubuntu-latest
|
||||
needs: init
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# run multiple copies of the current job in parallel
|
||||
containers: [1, 2]
|
||||
|
||||
name: runner ${{ matrix.containers }}
|
||||
|
||||
steps:
|
||||
- name: Restore context
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
key: cypress-context-${{ github.run_id }}
|
||||
path: /home/runner/work/social
|
||||
|
||||
- name: Setup server
|
||||
run: |
|
||||
npm install -g wait-on
|
||||
wait-on -i 500 -t 240000 $CYPRESS_baseUrl
|
||||
cd cypress
|
||||
docker-compose up -d
|
||||
|
||||
- name: Wait for server
|
||||
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
|
||||
uses: cypress-io/github-action@v4
|
||||
with:
|
||||
record: true
|
||||
parallel: true
|
||||
|
@ -65,3 +92,23 @@ jobs:
|
|||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
# https://github.com/cypress-io/github-action/issues/124
|
||||
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
|
||||
TESTING: true
|
||||
|
||||
- name: Upload snapshots
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: snapshots
|
||||
path: cypress/snapshots
|
||||
|
||||
summary:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [init, cypress]
|
||||
|
||||
if: always()
|
||||
|
||||
name: cypress-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.init.result != 'success' || ( needs.cypress.result != 'success' && needs.cypress.result != 'skipped' ) }}; then exit 1; fi
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
version: '3'
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
nextcloud:
|
||||
image: nextcloudci/server
|
||||
image: ghcr.io/nextcloud/continuous-integration-shallow-server
|
||||
|
||||
ports:
|
||||
- 8082:80
|
||||
|
||||
environment:
|
||||
CYPRESS_baseUrl: "http://127.0.0.1:8082/index.php"
|
||||
BRANCH: master
|
||||
BRANCH: "${BRANCH:-master}"
|
||||
|
||||
volumes:
|
||||
- ../:/var/www/html/apps/social
|
||||
# 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:-social}
|
||||
- ./initserver.sh:/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 "
|
||||
|
|
Ładowanie…
Reference in New Issue