Combine workflows into one with multiple jobs

This commit is contained in:
Oliver Davies 2020-10-30 00:13:35 +00:00
parent a888430ef3
commit 6ff3c7f483
5 changed files with 165 additions and 190 deletions

165
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,165 @@
name: CI
on:
push:
branches: [production]
pull_request:
jobs:
install:
runs-on: ubuntu-latest
name: Test Drupal site installation
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: |
~/.composer/cache/files
web/core
web/modules/contrib
web/themes/contrib
vendor
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
extensions: mbstring
coverage: none
tools: composer:v1
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-suggest
- name: Install Drupal
run: >
vendor/bin/drush --root=$(pwd)/web
site:install -y
--existing-config
--db-url=sqlite://sites/default/files/.ht.sqlite
- name: Start a web server
run: php -S localhost:8000 -t web 2>&1 &
- name: Test loading the home page
run: curl http://localhost:8000
- name: Verify the home page has the site name in it
run: curl -s http://localhost:8000 | grep "Oliver Davies"
phpunit:
runs-on: ubuntu-latest
name: "Run ${{ matrix.test-types }} tests"
strategy:
matrix:
test-types:
- functional
- kernel
- unit
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: |
~/.composer/cache/files
web/core
web/modules/constrib
web/themes/contrib
vendor
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
extensions: mbstring
coverage: none
tools: composer:v1
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-suggest
- name: Start the local web server
run: php -S localhost:8000 -t web 2>&1 &
if: matrix.test-types == 'functional'
- name: Execute tests
run: vendor/bin/phpunit --testdox --colors=always --testsuite=${{ matrix.test-types }}
env:
SIMPLETEST_BASE_URL: http://localhost:8000
phpcs:
runs-on: ubuntu-latest
name: "Run coding standards checks"
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: |
~/.composer/cache/files
web/core
web/modules/constrib
web/themes/contrib
vendor
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
tools: composer:v1
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-suggest
- name: Run checks
run: vendor/bin/phpcs -s --warning-severity=6
phpstan:
runs-on: ubuntu-latest
name: Static analysis with PHPStan
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: |
~/.composer/cache/files
web/core
web/modules/constrib
web/themes/contrib
vendor
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
tools: composer:v1
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-suggest
- name: Run checks
run: vendor/bin/phpstan analyze

View file

@ -1,40 +0,0 @@
name: Run coding standards checks
on:
push:
branches:
- production
pull_request:
jobs:
phpunit:
runs-on: ubuntu-latest
name: "Run coding standards checks"
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: |
~/.composer/cache/files
web/core
web/modules/constrib
web/themes/contrib
vendor
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
tools: composer:v1
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-suggest
- name: Run checks
run: vendor/bin/phpcs -s --warning-severity=6

View file

@ -1,55 +0,0 @@
name: Drupal installation
on:
push:
branches:
- master
pull_request:
jobs:
install:
runs-on: ubuntu-latest
name: Test Drupal site installation
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: |
~/.composer/cache/files
web/core
web/modules/contrib
web/themes/contrib
vendor
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
extensions: mbstring
coverage: none
tools: composer:v1
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-suggest
- name: Install Drupal
run: >
vendor/bin/drush --root=$(pwd)/web
site:install -y
--existing-config
--db-url=sqlite://sites/default/files/.ht.sqlite
- name: Start a web server
run: php -S localhost:8000 -t web 2>&1 &
- name: Test loading the home page
run: curl http://localhost:8000
- name: Verify the home page has the site name in it
run: curl -s http://localhost:8000 | grep "Oliver Davies"

View file

@ -1,55 +0,0 @@
name: Run PHPUnit tests
on:
push:
branches:
- master
pull_request:
jobs:
phpunit:
runs-on: ubuntu-latest
name: "Run ${{ matrix.test-types }} tests"
strategy:
matrix:
test-types:
- functional
- kernel
- unit
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: |
~/.composer/cache/files
web/core
web/modules/constrib
web/themes/contrib
vendor
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
extensions: mbstring
coverage: none
tools: composer:v1
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-suggest
- name: Start the local web server
run: php -S localhost:8000 -t web 2>&1 &
if: matrix.test-types == 'functional'
- name: Execute tests
run: vendor/bin/phpunit --testdox --colors=always --testsuite=${{ matrix.test-types }}
env:
SIMPLETEST_BASE_URL: http://localhost:8000

View file

@ -1,40 +0,0 @@
name: Static analysis with PHPStan
on:
push:
branches:
- production
pull_request:
jobs:
phpunit:
runs-on: ubuntu-latest
name: Static analysis with PHPStan
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v1
with:
path: |
~/.composer/cache/files
web/core
web/modules/constrib
web/themes/contrib
vendor
key: dependencies-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
tools: composer:v1
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-suggest
- name: Run checks
run: vendor/bin/phpstan analyze