ci: add workflow for gitea #1
121
.gitea/workflows/tests.yml
Normal file
121
.gitea/workflows/tests.yml
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
name: Tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-npm:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: node:20-slim
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout.git@v4
|
||||||
|
- name: NPM install
|
||||||
|
run: npm install
|
||||||
|
- name: NPM run build
|
||||||
|
run: npm run build
|
||||||
|
- uses: https://gitea.com/actions/upload-artifact.git@v3
|
||||||
|
name: Upload resources
|
||||||
|
id: artifact-upload-step
|
||||||
|
with:
|
||||||
|
name: nodejs-artefacts
|
||||||
|
path: |
|
||||||
|
public/build/
|
||||||
|
|
||||||
|
tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: git.nanobyte.cz/ovlach-public/php-docker:php-fpm-dev-8.4.17-cad44e8
|
||||||
|
services:
|
||||||
|
postgresql-test:
|
||||||
|
image: postgres:17-alpine
|
||||||
|
env:
|
||||||
|
POSTGRES_DB: ecomail
|
||||||
|
POSTGRES_USER: laravel
|
||||||
|
POSTGRES_PASSWORD: laravel
|
||||||
|
options: >-
|
||||||
|
--health-cmd "pg_isready -U laravel -d ecomail"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
env:
|
||||||
|
APP_ENV: testing
|
||||||
|
APP_DEBUG: true
|
||||||
|
APP_KEY: base64:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||||
|
DB_CONNECTION: pgsql
|
||||||
|
DB_HOST: postgresql-test
|
||||||
|
DB_PORT: 5432
|
||||||
|
DB_DATABASE: ecomail
|
||||||
|
DB_USERNAME: laravel
|
||||||
|
DB_PASSWORD: laravel
|
||||||
|
DB_URL: pgsql://laravel:laravel@postgresql-test:5432/ecomail
|
||||||
|
CACHE_STORE: array
|
||||||
|
SESSION_DRIVER: array
|
||||||
|
QUEUE_CONNECTION: sync
|
||||||
|
MAIL_MAILER: array
|
||||||
|
|
||||||
|
needs:
|
||||||
|
- build-npm
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout.git@v4
|
||||||
|
|
||||||
|
- uses: https://gitea.com/actions/download-artifact.git@v3
|
||||||
|
id: artifact-download-step-resources
|
||||||
|
name: Download nodejs-artefacts
|
||||||
|
with:
|
||||||
|
name: nodejs-artefacts
|
||||||
|
path: public/build/
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer install --no-interaction --prefer-dist --no-progress
|
||||||
|
|
||||||
|
- name: Run migrations
|
||||||
|
run: php artisan migrate --force --no-interaction
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: php artisan test --compact
|
||||||
|
|
||||||
|
validate-composer:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: git.nanobyte.cz/ovlach-public/php-docker:php-fpm-dev-8.4.17-cad44e8
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout.git@v4
|
||||||
|
|
||||||
|
- name: Validate composer.json
|
||||||
|
run: composer validate --strict
|
||||||
|
|
||||||
|
phpcs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: git.nanobyte.cz/ovlach-public/php-docker:php-fpm-dev-8.4.17-cad44e8
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout.git@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer install --no-interaction --prefer-dist --no-progress
|
||||||
|
|
||||||
|
- name: Run PHPCS
|
||||||
|
run: vendor/bin/phpcs
|
||||||
|
|
||||||
|
phpstan:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: git.nanobyte.cz/ovlach-public/php-docker:php-fpm-dev-8.4.17-cad44e8
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: https://github.com/actions/checkout.git@v4
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer install --no-interaction --prefer-dist --no-progress
|
||||||
|
|
||||||
|
- name: Run PHPStan
|
||||||
|
run: vendor/bin/phpstan analyze --memory-limit=2G
|
||||||
Reference in New Issue
Block a user