DEBUG: cypress screenshot #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: OMP integration test | |
on: | |
push: | |
branches: | |
- '**' | |
pull_request: | |
branches: | |
- main | |
schedule: | |
- cron: '0 1 1 * *' | |
env: | |
APPLICATION: omp | |
DBUSERNAME: omp-ci | |
DBPASSWORD: omp-ci | |
DBNAME: omp-ci | |
DBHOST: 127.0.0.1 | |
DATABASEDUMP: database.sql.gz | |
FILESDIR: files | |
FILESDUMP: files.tar.gz | |
CYPRESS_BASE_URL: http://127.0.0.1:8000 | |
CYPRESS_DBNAME: omp-ci | |
CYPRESS_DBUSERNAME: omp-ci | |
CYPRESS_DBPASSWORD: omp-ci | |
CYPRESS_DBHOST: 127.0.0.1 | |
CYPRESS_FILESDIR: files | |
jobs: | |
install: | |
name: ${{matrix.pkp-application}}(BRANCH=${{matrix.pkp-branch}} ;PHP=${{matrix.php-versions}}; DB=${{matrix.dbs}}) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
php-versions: [ '8.1','8.2' ] | |
dbs: [ 'pgsql', 'mysql','mariadb'] | |
pkp-application: [ 'omp' ] | |
pkp-branch: [ '${{ github.head_ref || github.ref_name }}' ] | |
env: | |
DBTYPE: ${{matrix.dbs == 'pgsql' && 'PostgreSQL' || 'MySQLi'}} | |
CYPRESS_DBTYPE: ${{matrix.dbs=='pgsql' && 'PostgreSQL' || 'MySQLi'}} | |
TEST: ${{matrix.dbs}} | |
steps: | |
- name: install postgres server | |
if: ${{matrix.dbs == 'pgsql'}} | |
run: | | |
sudo apt install postgresql postgresql-contrib | |
sudo dpkg-reconfigure locales | |
sudo sed -i -E 's\peer|scram-sha-256\trust\g' /etc/postgresql/14/main/pg_hba.conf | |
- name: Install mysql database server | |
if: ${{matrix.dbs == 'mysql'}} | |
run: | | |
sudo apt install -q -y mysql-server mysql-client | |
sudo service mysql start | |
sudo mysqladmin -u root -p'root' password '' | |
- name: Install mariadb database server | |
if: ${{matrix.dbs == 'mariadb'}} | |
uses: ankane/setup-mariadb@v1 | |
with: | |
mariadb-version: "10.11" | |
- name: Install ${{matrix.pkp-application}} | |
run: | | |
git clone -b ${{matrix.pkp-branch}} https://github.com/${{github.repository}} ~/${{matrix.pkp-application}} | |
cd ~/${{matrix.pkp-application}} | |
git submodule update --init --recursive | |
- name: Setup PHP, extensions and composer | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{matrix.php-versions}} | |
extensions: bcmath, bz2, common, cli, curl, fpm, gd, intl, mbstring, mysql,mysqlnd, mysqli, opcache, pdo_mysql, pgsql, json,soap, xml, zip | |
coverage: xdebug | |
env: | |
update: true | |
- name: Install composer dependencies | |
run: | | |
cd ~/${{matrix.pkp-application}} | |
lib/pkp/tools/travis/install-composer-dependencies.sh | |
npm i g -npm && npm i @vue/cli-service && npm i cypress && npm install && npm run build | |
- name: Run validation ad linting | |
run: | | |
mkdir -p $HOME/bin | |
cd ~/${{matrix.pkp-application}} && npm install | |
./lib/pkp/tools/travis/install-linter.sh | |
./lib/pkp/tools/travis/validate-xml.sh | |
./lib/pkp/tools/buildjs.sh -n | |
./lib/pkp/tools/checkHelp.sh | |
./lib/pkp/tools/travis/validate-json.sh | |
npm run lint | |
- name: Prepare tests | |
run: | | |
cd ~/${{matrix.pkp-application}} | |
./lib/pkp/tools/travis/prepare-webserver.sh | |
./lib/pkp/tools/travis/prepare-tests.sh | |
- name: Run Web-server | |
run: | | |
php -S 127.0.0.1:8000 -t . >& access.log & | |
- name: Run cypress data tests | |
run: | | |
cd ~/${{matrix.pkp-application}} | |
npx cypress run --headless --browser chrome --config '{"specPattern":["cypress/tests/data/**/*.cy.js"]}' | |
- name: Run cypress pkp-lib integration tests | |
run: | | |
cd ~/${{matrix.pkp-application}} | |
npx cypress run --headless --browser chrome --config '{"specPattern":["lib/pkp/cypress/tests/integration/**/*.cy.js"]}' | |
- name: Run cypress ${{matrix.pkp-application}} integration tests | |
if: ${{hashFiles('${{matrix.pkp-application}}/cypress/tests/integration/') != '' }} | |
run: | | |
cd ~/${{matrix.pkp-application}} | |
if [ -d "cypress/tests/integration" ]; then | |
npx cypress run --headless --browser chrome --config '{"specPattern":["cypress/tests/integration/**/*.cy.js"]}' | |
fi | |
- name: Run ${{matrix.pkp-application}} unit tests | |
run: | | |
cd ~/${{matrix.pkp-application}} | |
./lib/pkp/tools/travis/dump-database.sh | |
./lib/pkp/tools/runAllTests.sh -CcPpdR | |
- name: Show failures log | |
if: ${{ failure() }} | |
run: | | |
sudo apt-get install sharutils | |
find cypress/screenshots -type f -printf '%T+\t%p\n' | sort | head -n 1 | cut -f 2 | tar -czT - | uuencode /dev/stdout | |
tail -n 500 error.log |