parent
4ffb7f4b23
commit
fdfb0f6a3e
@ -0,0 +1,190 @@ |
|||||||
|
name: PHP Composer |
||||||
|
|
||||||
|
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.1', '7.2', '7.3', '7.4'] |
||||||
|
|
||||||
|
# services: |
||||||
|
# mysql: |
||||||
|
# image: mysql:5.7 |
||||||
|
# env: |
||||||
|
# MYSQL_ALLOW_EMPTY_PASSWORD: false |
||||||
|
# MYSQL_ROOT_PASSWORD: chamilo |
||||||
|
# MYSQL_DATABASE: chamilo |
||||||
|
# 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 update |
||||||
|
sudo apt 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 |
||||||
|
|
||||||
|
- 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: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} |
||||||
|
restore-keys: ${{ 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 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: '88.0.4324.96' |
||||||
|
|
||||||
|
- 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 http://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.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-standalone-3.141.59.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" --db_password="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 |
||||||
|
ls -la web/build |
||||||
|
|
||||||
|
- name: Behat tests |
||||||
|
run: | |
||||||
|
cd ${{ github.workspace }}/tests/behat |
||||||
|
../../vendor/behat/behat/bin/behat -vvv |
||||||
|
|
||||||
Loading…
Reference in new issue