1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-13 23:14:04 +00:00

Use action services and setup-php in workflow

This commit is contained in:
Erik Gaal 2022-02-08 09:39:36 +01:00
parent f08e33afd8
commit 4ae371aa15
No known key found for this signature in database
GPG key ID: 8733B288F439A599

View file

@ -1,31 +1,97 @@
name: CI
env:
COMPOSE_INTERACTIVE_NO_CLI: 1
on:
push:
branches: [ 3.x, 2.x, master ]
pull_request:
branches: [ 3.x, 2.x, master ]
jobs:
tests:
runs-on: ubuntu-latest
container: shivammathur/node:latest
strategy:
matrix:
php: ["7.4", "8.0"]
laravel: ["^6.0", "^8.0"]
php: ['7.4', '8.0', '8.1']
laravel: ['^6.0', '^8.0']
exclude:
- php: '8.1'
laravel: '^6.0'
services:
postgres:
image: postgres:latest
env:
POSTGRES_PASSWORD: password
POSTGRES_USER: root
POSTGRES_DB: main
ports:
- 5432/tcp
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
mysql:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: false
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: main
ports:
- 3306/tcp
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql2:
image: mysql:5.7
env:
MYSQL_ALLOW_EMPTY_PASSWORD: false
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: main
ports:
- 3306/tcp
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
redis:
image: redis:alpine
ports:
- 6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- uses: actions/checkout@v2
- name: Start docker containers
run: PHP_VERSION=${{ matrix.php }} docker-compose up -d
- name: Install dependencies
run: docker-compose exec -T test composer require --no-interaction "laravel/framework:${{ matrix.laravel }}"
- name: Checkout
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, redis, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
coverage: pcov
- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache composer dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install Composer dependencies
run: |
composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
composer update --prefer-dist --no-interaction
- name: Run tests
run: ./test
run: ./vendor/bin/phpunit
env:
DB_PASSWORD: password
DB_USERNAME: root
DB_DATABASE: main
TENANCY_TEST_MYSQL_HOST: mysql
TENANCY_TEST_PGSQL_HOST: postgres
TENANCY_TEST_REDIS_HOST: redis
- name: Send code coverage to codecov
env:
CODECOV_TOKEN: 24382d15-84e7-4a55-bea4-c4df96a24a9b