Merge pull request #208 from jonnybarnes/switch-to-github-actions
Add an action for unit tests
This commit is contained in:
commit
1ad58f10c5
3 changed files with 122 additions and 65 deletions
66
.env.github
Normal file
66
.env.github
Normal file
|
@ -0,0 +1,66 @@
|
|||
APP_NAME=Laravel
|
||||
APP_ENV=testing
|
||||
APP_KEY=SomeRandomString # Leave this
|
||||
APP_DEBUG=false
|
||||
APP_LOG_LEVEL=warning
|
||||
|
||||
DB_CONNECTION=pgsql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=5432
|
||||
DB_DATABASE=jbuktest
|
||||
DB_USERNAME=postgres
|
||||
DB_PASSWORD=postgres
|
||||
|
||||
BROADCAST_DRIVER=log
|
||||
CACHE_DRIVER=file
|
||||
SESSION_DRIVER=file
|
||||
QUEUE_DRIVER=sync
|
||||
|
||||
REDIS_HOST=127.0.0.1
|
||||
REDIS_PASSWORD=null
|
||||
REDIS_PORT=6379
|
||||
|
||||
MAIL_DRIVER=smtp
|
||||
MAIL_HOST=smtp.mailtrap.io
|
||||
MAIL_PORT=2525
|
||||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
|
||||
PUSHER_APP_ID=
|
||||
PUSHER_APP_KEY=
|
||||
PUSHER_APP_SECRET=
|
||||
|
||||
AWS_S3_KEY=your-key
|
||||
AWS_S3_SECRET=your-secret
|
||||
AWS_S3_REGION=region
|
||||
AWS_S3_BUCKET=your-bucket
|
||||
AWS_S3_URL=https://xxxxxxx.s3-region.amazonaws.com
|
||||
|
||||
APP_URL=https://example.com # This one is necessary
|
||||
APP_LONGURL=example.com
|
||||
APP_SHORTURL=examp.le
|
||||
|
||||
ADMIN_USER=admin # pick something better, this is used for `/admin`
|
||||
ADMIN_PASS=password
|
||||
DISPLAY_NAME="Joe Bloggs" # This is used for example in the header and titles
|
||||
|
||||
TWITTER_CONSUMER_KEY=
|
||||
TWITTER_CONSUMER_SECRET=
|
||||
TWITTER_ACCESS_TOKEN=
|
||||
TWITTER_ACCESS_TOKEN_SECRET=
|
||||
|
||||
SCOUT_DRIVER=pgsql
|
||||
|
||||
PIWIK=false
|
||||
|
||||
FATHOM_ID=
|
||||
|
||||
APP_TIMEZONE=UTC
|
||||
APP_LANG=en
|
||||
APP_LOG=daily
|
||||
SECURE_SESSION_COOKIE=true
|
||||
|
||||
LOG_SLACK_WEBHOOK_URL=
|
||||
|
||||
FONT_LINK=
|
56
.github/workflows/run-tests.yml
vendored
Normal file
56
.github/workflows/run-tests.yml
vendored
Normal file
|
@ -0,0 +1,56 @@
|
|||
name: Run Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
phpunit:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
name: PHPUnit test suite
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:12
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: jbuktest
|
||||
ports:
|
||||
- 5432:5432
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Cache node modules
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-${{ hashFiles('**/package.json') }}
|
||||
- name: Install npm dependencies
|
||||
run: npm install
|
||||
- name: Install ImageMagick
|
||||
run: sudo apt install imagemagick
|
||||
- name: Setup PHP with pecl extension
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: pecl, phpcs
|
||||
extensions: imagick
|
||||
- name: Copy .env
|
||||
run: php -r "file_exists('.env') || copy('.env.github', '.env');"
|
||||
- name: Install dependencies
|
||||
run: composer install -q --no-ansi --no-interaction --no-progress
|
||||
- name: Generate key
|
||||
run: php artisan key:generate
|
||||
- name: Setup directory permissions
|
||||
run: chmod -R 777 storage bootstrap/cache
|
||||
- name: Setup test database
|
||||
run: |
|
||||
php artisan migrate
|
||||
php artisan db:seed
|
||||
- name: Execute tests (Unit and Feature tests) via PHPUnit
|
||||
run: vendor/bin/phpunit
|
||||
- name: Run phpcs
|
||||
run: phpcs
|
||||
- name: Check for security vulnerabilities
|
||||
run: php vendor/bin/security-checker security:check
|
65
.travis.yml
65
.travis.yml
|
@ -1,65 +0,0 @@
|
|||
language: php
|
||||
|
||||
os: linux
|
||||
dist: bionic
|
||||
|
||||
addons:
|
||||
hosts:
|
||||
- jmb.localhost
|
||||
- jonnybarnes.localhost
|
||||
postgresql: "9.6"
|
||||
apt:
|
||||
packages:
|
||||
- nginx-full
|
||||
- postgresql-9.6-postgis-2.4
|
||||
- imagemagick
|
||||
#- google-chrome-stable
|
||||
artifacts:
|
||||
region: "eu-west-1"
|
||||
paths:
|
||||
- $(ls tests/Browser/screenshots/*.png | tr "\n" ":")
|
||||
- $(ls tests/Browser/console/*.log | tr "\n" ":")
|
||||
- $(ls storage/logs/*.log | tr "\n" ":")
|
||||
- $(ls /tmp/*.log | tr "\n" ":")
|
||||
|
||||
services:
|
||||
- postgresql
|
||||
|
||||
env:
|
||||
global:
|
||||
- setup=basic
|
||||
|
||||
php:
|
||||
- 7.4.7
|
||||
|
||||
before_install:
|
||||
- printf "\n" | pecl install imagick
|
||||
- cp .env.travis .env
|
||||
- echo 'error_log = "/tmp/php.error.log"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
|
||||
- psql -U travis -c 'create database travis_ci_test'
|
||||
- psql -U travis -d travis_ci_test -c 'create extension postgis'
|
||||
- travis_retry composer self-update --snapshot
|
||||
- curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
|
||||
|
||||
install:
|
||||
- if [[ $setup = 'basic' ]]; then travis_retry composer install --no-interaction --prefer-dist; fi
|
||||
- if [[ $setup = 'stable' ]]; then travis_retry composer update --no-interaction --prefer-dist --prefer-stable; fi
|
||||
- if [[ $setup = 'lowest' ]]; then travis_retry composer update --no-interaction --prefer-dist --prefer-lowest --prefer-stable; fi
|
||||
- travis/install-nginx.sh
|
||||
- . $HOME/.nvm/nvm.sh
|
||||
- nvm install stable
|
||||
- nvm use stable
|
||||
- npm i puppeteer
|
||||
|
||||
before_script:
|
||||
- php artisan key:generate
|
||||
- php artisan migrate
|
||||
- php artisan db:seed
|
||||
#- google-chrome-stable --headless --disable-gpu --remote-debugging-port=9515 http://localhost:8000 &
|
||||
#- sleep 5
|
||||
|
||||
script:
|
||||
- php vendor/bin/phpunit --stop-on-failure
|
||||
- php phpcs.phar
|
||||
#- php artisan dusk
|
||||
- php vendor/bin/security-checker security:check
|
Loading…
Add table
Add a link
Reference in a new issue