Skip to content

Commit 1e21e97

Browse files
committed
chore: #4 add ci step
1 parent cff95f9 commit 1e21e97

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

Diff for: .github/workflows/test.yml

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Code Quality
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
test:
7+
runs-on: ubuntu-latest
8+
env:
9+
BROADCAST_DRIVER: log
10+
CACHE_DRIVER: redis
11+
QUEUE_CONNECTION: redis
12+
SESSION_DRIVER: redis
13+
DB_CONNECTION: pgsql
14+
DB_HOST: localhost
15+
DB_PASSWORD: postgres
16+
DB_USERNAME: postgres
17+
DB_DATABASE: postgres
18+
19+
# Docs: https://docs.github.com/en/actions/using-containerized-services
20+
services:
21+
postgres:
22+
image: postgres:latest
23+
env:
24+
POSTGRES_USER: postgres
25+
POSTGRES_PASSWORD: postgres
26+
POSTGRES_DB: postgres
27+
ports:
28+
- 5432/tcp
29+
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
30+
31+
redis:
32+
image: redis
33+
ports:
34+
- 6379/tcp
35+
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
36+
37+
steps:
38+
- uses: actions/checkout@v4
39+
- uses: shivammathur/setup-php/setup-php@v2
40+
with:
41+
php-version: '8.3'
42+
extensions: pdo pdo_pgsql pgsql bcmath
43+
coverage: xdebug
44+
45+
- name: Get composer cache directory
46+
id: composer-cache
47+
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
48+
49+
- name: Cache composer dependencies
50+
uses: actions/cache@v3
51+
with:
52+
path: ${{ steps.composer-cache.outputs.dir }}
53+
# Use composer.json for key, if composer.lock is not committed.
54+
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
55+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
56+
restore-keys: ${{ runner.os }}-composer-
57+
58+
- name: Install Composer dependencies
59+
run: composer install --no-progress --prefer-dist --optimize-autoloader
60+
61+
- name: Prepare the application
62+
run: |
63+
php -r "file_exists('.env') || copy('.env.example', '.env');"
64+
php artisan key:generate
65+
66+
- name: Clear Config
67+
run: php artisan config:clear
68+
69+
- name: Run Migration
70+
run: php artisan migrate -v
71+
env:
72+
DB_PORT: ${{ job.services.postgres.ports[5432] }}
73+
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
74+
75+
- name: Test with pest
76+
run: php artisan test --coverage-text
77+
env:
78+
DB_PORT: ${{ job.services.postgres.ports[5432] }}
79+
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}

0 commit comments

Comments
 (0)