Skip to content

Commit 836aee5

Browse files
author
Nathan Esayeas
authored
Add continuous integration for platforms and versions (#152)
1 parent 4dd672a commit 836aee5

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: Continuous Integration
2+
3+
on:
4+
push:
5+
pull_request:
6+
schedule:
7+
- cron: "0 0 * * *"
8+
9+
env:
10+
COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --no-suggest --prefer-dist -o -n"
11+
12+
jobs:
13+
tests:
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
php-version: [7.2, 7.3, 7.4]
18+
19+
laravel-version: [6, 7]
20+
21+
os: [ubuntu-latest]
22+
23+
dependencies: [locked]
24+
25+
experimental: [false]
26+
27+
include:
28+
- php-version: 7.4
29+
laravel-version: 7
30+
dependencies: highest
31+
os: ubuntu-latest
32+
experimental: false
33+
34+
- php-version: 7.4
35+
laravel-version: 7
36+
os: windows-latest
37+
dependencies: locked
38+
experimental: false
39+
40+
- php-version: 7.4
41+
laravel-version: 7
42+
os: macos-latest
43+
dependencies: locked
44+
experimental: false
45+
46+
# - php-version: 8.0
47+
# laravel-version: 7
48+
# dependencies: highest
49+
# os: ubuntu-latest
50+
# experimental: true
51+
52+
name: PHP ${{ matrix.php-version }} - L${{ matrix.laravel-version }} - ${{ matrix.os }}
53+
54+
runs-on: ${{ matrix.os }}
55+
56+
continue-on-error: ${{ matrix.experimental }}
57+
58+
steps:
59+
- name: Checkout code
60+
uses: actions/checkout@v2
61+
62+
- name: Cache dependencies
63+
uses: actions/cache@v1
64+
with:
65+
path: ~/.composer/cache/files
66+
key: dependencies-os-${{ matrix.os }}-php-${{ matrix.php-version }}-laravel-${{ matrix.laravel-version }}-composer-${{ hashFiles('**/composer.lock') }}
67+
restore-keys: dependencies-os-${{ matrix.os }}-php-${{ matrix.php-version }}-laravel-${{ matrix.laravel-version }}
68+
69+
- name: Setup PHP
70+
uses: shivammathur/setup-php@v2
71+
with:
72+
php-version: ${{ matrix.php-version }}
73+
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, gd
74+
coverage: none
75+
ini-values: "memory_limit=-1"
76+
77+
- name: Install highest dependencies from composer.json
78+
if: matrix.dependencies == 'highest'
79+
run: composer config platform --unset && composer update ${{ env.COMPOSER_FLAGS }}
80+
81+
- name: Install lowest dependencies from composer.json
82+
if: matrix.dependencies == 'lowest'
83+
run: composer install ${{ env.COMPOSER_FLAGS }} --prefer-lowest
84+
85+
- name: Install dependencies from composer.lock
86+
if: matrix.dependencies == 'locked'
87+
run: composer install ${{ env.COMPOSER_FLAGS }}
88+
89+
- name: Select Laravel version
90+
run: composer require "laravel/framework:${{ matrix.laravel-version }}.*" --no-update
91+
92+
- name: Run tests
93+
run: vendor/bin/phpunit --verbose

0 commit comments

Comments
 (0)