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