name: CI on: [push] jobs: test: runs-on: ${{ matrix.operating-system }} env: HTTPSERVER: localhost URI: /demo/server/server.php HTTPSSERVER: localhost HTTPSURI: /demo/server/server.php PROXYSERVER: localhost:8080 # Travis currently compiles PHP with an oldish cURL/GnuTLS combination; # to make the tests pass when Apache has a bogus SSL cert whe need the full set of options below. # @todo check: is this necessary as well on GHA runners? HTTPSVERIFYHOST: 0 HTTPSIGNOREPEER: 1 SSLVERSION: 0 DEBUG: 0 strategy: fail-fast: false matrix: operating-system: ['ubuntu-latest'] # @todo add 'windows-latest' # @todo use an older version of phpunit to enable testing on php 5.3 - 5.5 php: ['8.1', '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6'] steps: - uses: actions/checkout@v2 # Although this action is useful, we prefer to use the same script to set up php that we use for the # docker image used for local testing. This allows us to make sure that script is always in good shape #- # uses: shivammathur/setup-php@v2 # with: # php-version: ${{ matrix.php }} # extensions: curl, dom, mbstring, xsl # ini-values: 'cgi.fix_pathinfo=1, always_populate_raw_post_data=-1' # #tools: phpunit/phpunit:a_version_compatible_with_php_5.3-5.5 # # NB: this disables xdebug completely # coverage: none - # @todo add config setup scripts for windows run: | chmod 755 ./tests/ci/setup/*.sh sudo --preserve-env=GITHUB_ACTIONS ./tests/ci/setup/setup_perl.sh sudo --preserve-env=GITHUB_ACTIONS ./tests/ci/setup/setup_apache.sh sudo --preserve-env=GITHUB_ACTIONS ./tests/ci/setup/setup_privoxy.sh sudo --preserve-env=GITHUB_ACTIONS ./tests/ci/setup/setup_php.sh ${{ matrix.php }} sudo --preserve-env=GITHUB_ACTIONS ./tests/ci/setup/setup_composer.sh # Avoid downloading composer deps on every workflow. Is this useful/working for us? #- # uses: actions/cache@v2 # with: # path: /tmp/composer-cache # key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }} - run: 'composer install' - if: ${{ matrix.php == '7.4' }} run: './tests/ci/setup/setup_code_coverage.sh enable' - # @todo bring back $PHPUNIT_OPTS to trigger code coverage run: './vendor/bin/phpunit -v tests' - run: 'python3 demo/client/python/test.py' - run: 'perl demo/client/perl/test.pl' - if: ${{ failure() }} run: | #env #php -i #ps auxwww dpkg --list | grep php ps auxwww | grep fpm pwd sudo env #systemctl status apache2.service #ls -la /etc/apache2/mods-enabled #ls -la /etc/apache2/conf-enabled #ls -la /etc/apache2/mods-available #ls -la /etc/apache2/conf-available #ls -la /etc/apache2/sites-available/ #sudo cat /etc/apache2/envvars #sudo cat /etc/apache2/sites-available/000-default.conf sudo cat /var/log/privoxy/* sudo cat /var/log/apache2/error.log sudo cat /var/log/apache2/other_vhosts_access.log sudo cat /var/log/php*.log