You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
8.5 KiB
199 lines
8.5 KiB
name: Behat tests 1.11.x 🐞
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
|
|
runs-on: ubuntu-18.04
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
operating-system: [ubuntu-latest]
|
|
php-versions: ['7.2', '7.3', '7.4']
|
|
|
|
services:
|
|
mysql:
|
|
image: mysql:latest
|
|
env:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: false
|
|
MYSQL_ROOT_PASSWORD: root
|
|
MYSQL_DATABASE: chamilo
|
|
MYSQL_AUTHENTICATION_PLUGIN: mysql_native_password
|
|
ports:
|
|
- 3306/tcp
|
|
options: >-
|
|
--health-cmd="mysqladmin ping"
|
|
--health-interval=10s
|
|
--health-timeout=5s
|
|
--health-retries=3
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- 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 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 tests/travis/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
|
|
tools: composer:v2
|
|
|
|
- name: Get composer cache directory
|
|
id: composer-cache-v1
|
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
|
|
- name: Cache composer dependencies
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ${{ steps.composer-cache-v1.outputs.dir }}
|
|
# Use composer.json for key, if composer.lock is not committed.
|
|
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
|
key: v1-${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: v1-${{ runner.os }}-composer-
|
|
|
|
- name: Install dependencies with composer
|
|
run: composer install --prefer-dist --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: Get yarn cache directory
|
|
# id: yarn-cache
|
|
# run: echo "::set-output name=dir::$(yarn cache dir)"
|
|
#
|
|
# - name: Cache yarn dependencies
|
|
# uses: actions/cache@v2
|
|
# with:
|
|
# path: ${{ steps.yarn-cache.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: Yarn install
|
|
# uses: borales/actions-yarn@v2.3.0
|
|
# with:
|
|
# cmd: install # will run `yarn install` command
|
|
#
|
|
# - name: Yarn run encore dev
|
|
# uses: borales/actions-yarn@v2.3.0
|
|
# with:
|
|
# cmd: run encore dev
|
|
|
|
- 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: '108.0.5359.71'
|
|
|
|
- run: |
|
|
export DISPLAY=:99
|
|
chromedriver --url-base=/wd/hub &
|
|
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
|
|
|
|
# wget https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip --quiet && unzip chromedriver_linux64.zip
|
|
# sudo mv chromedriver /usr/bin
|
|
# sudo chmod +x /usr/bin/chromedriver
|
|
# chromedriver --version
|
|
|
|
# - run: |
|
|
# export DISPLAY=:99
|
|
# chromedriver --url-base=/wd/hub &
|
|
# sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
|
|
# chromedriver --version
|
|
|
|
- name: Set up JDK 1.8
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 1.8
|
|
|
|
- name: Get Selenium
|
|
run: |
|
|
wget https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.7.0/selenium-server-4.7.2.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.7.2.jar -log selenium.log > /dev/null &
|
|
|
|
- name: Start mysql service
|
|
run: |
|
|
sudo /etc/init.d/mysql start
|
|
sudo systemctl restart apache2
|
|
#
|
|
# - name: Install database
|
|
# run: |
|
|
# bin/console doctrine:database:create || echo "Error while creating the DB"
|
|
# env:
|
|
# DATABASE_URL: mysql://root:root@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/chamilo
|
|
# DATABASE_HOST: 127.0.0.1
|
|
# DATABASE_PORT: ${{ job.services.mysql.ports['3306'] }}
|
|
# DATABASE_NAME: chamilo
|
|
# DATABASE_USER: root
|
|
# DATABASE_PASSWORD: root
|
|
# APP_INSTALLED: 1
|
|
|
|
- name: Check 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 chash
|
|
run: |
|
|
git clone https://github.com/chamilo/chash
|
|
cd chash
|
|
git checkout 0.2.x
|
|
composer install
|
|
php -d phar.readonly=0 createPhar.php
|
|
chmod +x chash.phar
|
|
sudo mv chash.phar /usr/local/bin/chash
|
|
|
|
- name: Install chamilo
|
|
run: |
|
|
php ${{ github.workspace }}/chash/chash.php chash:chamilo_install 1.11.x ${{ github.workspace }} --no-interaction --sitename="Chamilo" --site_url="http://localhost/" --institution="Chamilo" --institution_url="https://chamilo.org" --encrypt_method="sha1" --firstname="John" --lastname="Doe" --language="english" --driver="pdo_mysql" --host="localhost" --port="3306" --dbname="chamilo" --dbuser="root" --dbpassword="root" --permissions_for_new_directories="0777" --permissions_for_new_files="0666" --linux-user="www-data" --linux-group="www-data" --username="admin" --password="admin" --email="admin@example.com" --phone="555-5555"
|
|
sudo chmod -R 777 app/cache app/logs app/courses app/upload web
|
|
php ${{ github.workspace }}/chash/chash.php chash:chamilo_status
|
|
ls -la
|
|
bash tests/travis/post_installation.sh
|
|
curl http://localhost/index.php
|
|
ls -la web/build
|
|
|
|
- name: Behat tests
|
|
run: |
|
|
cd ${{ github.workspace }}/tests/behat
|
|
../../vendor/behat/behat/bin/behat -vvv
|
|
|