Skip to content

Merge pull request #5999 from christianbeeznest/storm-22278 #4203

Merge pull request #5999 from christianbeeznest/storm-22278

Merge pull request #5999 from christianbeeznest/storm-22278 #4203

Workflow file for this run

name: Behat tests 🐞
on: [push, pull_request]
jobs:
build:
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
operating-system: [ubuntu-latest]
php-versions: ['8.2']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup apache
run: |
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install nodejs npm apache2 php${{ matrix.php-versions }} php${{ matrix.php-versions }}-common php${{ matrix.php-versions }}-cli libapache2-mod-php${{ matrix.php-versions }}
sudo a2enmod rewrite actions
sudo cp -f .github/gh-apache /etc/apache2/sites-available/000-default.conf
sudo chmod 777 -R $HOME
cat /etc/apache2/sites-available/000-default.conf
sudo service apache2 restart
sudo systemctl restart apache2
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, xml, ctype, iconv, intl, pdo, pdo_mysql, dom, gd, json, soap, zip, bcmath
ini-values: post_max_size=256M, max_execution_time=600, memory_limit=4096M, date.timezone=Europe/Paris
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
# - name: Cache composer dependencies
# uses: actions/cache@v2
# with:
# path: ${{ steps.composer-cache.outputs.dir }}
# Use composer.json for key, if composer.lock is not committed.
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
# restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies with composer
run: composer install --no-progress
- name: Install assets
run: php bin/console assets:install
# - name: Generate fos_js_routes.json
# run: php bin/console fos:js-routing:dump --format=json --target=public/js/fos_js_routes.json
- name: Install Yarn
run: |
sudo npm i -g npm
node --version
npm --version
sudo corepack enable
yarn set version stable
yarn --version
- name: Get yarn cache directory
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
# - name: Cache yarn dependencies
# uses: actions/cache@v2
# id: yarn-cache
# with:
# path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
# Use composer.json for key, if composer.lock is not committed.
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
# key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
# restore-keys: ${{ runner.os }}-yarn-
- name: Install JS dependencies
run: |
yarn install
- name: Yarn run encore
run: |
yarn run encore production
- name: Start chrome
run: |
sudo apt-get install google-chrome-stable
google-chrome --version
google-chrome-stable --version
google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost &
whereis google-chrome-stable
# https://github.com/marketplace/actions/setup-chromedriver
- name: Start chromedriver
uses: nanasess/setup-chromedriver@master
with:
# Optional: do not specify to match Chrome's version
chromedriver-version: '100.0.4896.60'
- run: |
export DISPLAY=:99
chromedriver --url-base=/wd/hub &
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Get Selenium
run: |
wget https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.1.0/selenium-server-4.1.3.jar --quiet
- name: Run Selenium
run: |
java -version
export DISPLAY=:99.0
sudo xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-4.1.3.jar standalone --log selenium.log > /dev/null &
- name: Start mysql service
run: |
sudo /etc/init.d/mysql start
sudo systemctl restart apache2
- name: Check PHP settings
run: |
php -ini
php -v
php -m
- name: Check chamilo
run: |
sudo chmod 777 -R ${{ github.workspace }}
curl http://localhost/main/install/index.php
- name: Install chamilo
run: |
cd tests/behat
../../vendor/behat/behat/bin/behat features/actionInstall.feature -vvv
cd ..
cd ..
sed -i "s/APP_ENV='dev'/APP_ENV='prod'/g" .env
sed -i "s/APP_DEBUG='1'/APP_DEBUG='0'/g" .env
sed -i "s/MAILER_DSN=sendmail:\/\/default/MAILER_DSN=null:\/\/null/g" .env
sudo php bin/console cache:clear
sudo chmod -R 777 var public
- name: Behat tests
run: |
cd ${{ github.workspace }}/tests/behat
../../vendor/behat/behat/bin/behat features/actionUserLogin.feature -vvv
../../vendor/behat/behat/bin/behat features/adminFillUsers.feature -vvv
../../vendor/behat/behat/bin/behat features/adminSettings.feature -vv
../../vendor/behat/behat/bin/behat features/career.feature -vvv
../../vendor/behat/behat/bin/behat features/class.feature -vvv
#../../vendor/behat/behat/bin/behat features/companyReports.feature -vvv
../../vendor/behat/behat/bin/behat features/course.feature -vvv
../../vendor/behat/behat/bin/behat features/course_user_registration.feature -vv
../../vendor/behat/behat/bin/behat features/courseCategory.feature -vvv
../../vendor/behat/behat/bin/behat features/createUser.feature -vvv
../../vendor/behat/behat/bin/behat features/createUserViaCSV.feature -vv
../../vendor/behat/behat/bin/behat features/extraFieldUser.feature -vv
../../vendor/behat/behat/bin/behat features/profile.feature -vv
../../vendor/behat/behat/bin/behat features/promotion.feature -vv
# ../../vendor/behat/behat/bin/behat features/registration.feature -vv
../../vendor/behat/behat/bin/behat features/sessionAccess.feature -vv
../../vendor/behat/behat/bin/behat features/sessionManagement.feature -vv
../../vendor/behat/behat/bin/behat features/skill.feature -vv
../../vendor/behat/behat/bin/behat features/socialGroup.feature -vvv
../../vendor/behat/behat/bin/behat features/systemAnnouncements.feature -vvv
../../vendor/behat/behat/bin/behat features/ticket.feature -vvv
../../vendor/behat/behat/bin/behat features/toolAgenda.feature -vvv
../../vendor/behat/behat/bin/behat features/toolAnnouncement.feature -vvv
../../vendor/behat/behat/bin/behat features/toolAttendance.feature -vvv
../../vendor/behat/behat/bin/behat features/toolDocument.feature -vvv
# ../../vendor/behat/behat/bin/behat features/toolExercise.feature -vvv
../../vendor/behat/behat/bin/behat features/toolForum.feature -vvv
../../vendor/behat/behat/bin/behat features/toolGroup.feature -vvv
../../vendor/behat/behat/bin/behat features/toolLink.feature -vvv
../../vendor/behat/behat/bin/behat features/toolLp.feature -vvv
../../vendor/behat/behat/bin/behat features/toolThematic.feature -vvv
../../vendor/behat/behat/bin/behat features/toolWork.feature -vvv
- name: The job has failed
if: ${{ failure() }}
run: |
cat selenium.log