build(deps-dev): bump sass-loader from 13.3.2 to 13.3.3 #28
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# GitHub Action for Laravel with MySQL | |
name: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
env: | |
IMAGE_NAME: vatsim-scandinavia/booking | |
TARGET_PLATFORMS: linux/amd64 | |
jobs: | |
test-php-mysql: | |
name: Test PHP ${{ matrix.php-versions }} + Node ${{ matrix.node }} with MySQL | |
runs-on: ubuntu-latest | |
env: | |
DB_DATABASE: laravel | |
DB_USERNAME: root | |
DB_PASSWORD: password | |
BROADCAST_DRIVER: log | |
# CACHE_DRIVER: redis | |
# QUEUE_CONNECTION: redis | |
# SESSION_DRIVER: redis | |
services: | |
mysql: | |
image: mysql:8.0 | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: false | |
MYSQL_ROOT_PASSWORD: password | |
MYSQL_DATABASE: laravel | |
ports: | |
- 3306/tcp | |
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
# redis: | |
# image: redis | |
# ports: | |
# - 6379/tcp | |
# options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
strategy: | |
fail-fast: false | |
matrix: | |
php-versions: ["8.1", "8.2"] | |
node: [16, 18] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP, with composer and extensions | |
uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php | |
with: | |
php-version: ${{ matrix.php-versions }} | |
extensions: mbstring, dom, fileinfo, mysql | |
coverage: xdebug | |
tools: phpcs, phpcpd | |
- name: Start mysql service | |
run: sudo systemctl start mysql.service | |
- uses: ramsey/composer-install@v2 | |
- name: Prepare the application | |
run: | | |
php -r "file_exists('.env') || copy('.env.example', '.env');" | |
php artisan key:generate | |
- name: Clear Config | |
run: php artisan config:clear | |
- name: Setup NPM | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: "npm" | |
- name: Build assets | |
run: | | |
npm ci | |
npm run production --no-progress | |
- name: Run Migration | |
run: php artisan migrate -v | |
env: | |
DB_PORT: ${{ job.services.mysql.ports['3306'] }} | |
# REDIS_PORT: ${{ job.services.redis.ports['6379'] }} | |
- name: Run tests | |
run: php artisan test --coverage | |
env: | |
DB_PORT: ${{ job.services.mysql.ports['3306'] }} | |
# REDIS_PORT: ${{ job.services.redis.ports['6379'] }} | |
- name: PHP_CodeSniffer | |
run: phpcs --extensions=php app | |
- name: Copy/Paste Detector | |
run: phpcpd app/ --min-lines=50 | |
test-php-postgresql: | |
name: Test PHP ${{ matrix.php-versions }} + Node ${{ matrix.node }} with PostgreSQL | |
runs-on: ubuntu-latest | |
env: | |
BROADCAST_DRIVER: log | |
# CACHE_DRIVER: redis | |
# QUEUE_CONNECTION: redis | |
# SESSION_DRIVER: redis | |
DB_CONNECTION: pgsql | |
DB_HOST: localhost | |
DB_PASSWORD: postgres | |
DB_USERNAME: postgres | |
DB_DATABASE: postgres | |
services: | |
postgres: | |
image: postgres:14.1 | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_DB: postgres | |
ports: | |
- 5432/tcp | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3 | |
# redis: | |
# image: redis | |
# ports: | |
# - 6379/tcp | |
# options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
strategy: | |
fail-fast: false | |
matrix: | |
php-versions: ["8.1"] | |
node: [16, 18] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup PHP, with composer and extensions | |
uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php | |
with: | |
php-version: ${{ matrix.php-versions }} | |
extensions: mbstring, dom, fileinfo, pgsql | |
coverage: xdebug | |
tools: phpcs, phpcpd | |
- uses: ramsey/composer-install@v2 | |
- name: Prepare the application | |
run: | | |
php -r "file_exists('.env') || copy('.env.example', '.env');" | |
php artisan key:generate | |
- name: Setup NPM | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: "npm" | |
- name: Build assets | |
run: | | |
npm ci | |
npm run production --no-progress | |
- name: Clear Config | |
run: php artisan config:clear | |
- name: Run Migration | |
run: php artisan migrate -v | |
env: | |
DB_PORT: ${{ job.services.postgres.ports[5432] }} | |
# REDIS_PORT: ${{ job.services.redis.ports['6379'] }} | |
- name: Run tests | |
run: php artisan test --coverage | |
env: | |
DB_PORT: ${{ job.services.postgres.ports[5432] }} | |
# REDIS_PORT: ${{ job.services.redis.ports['6379'] }} | |
- name: PHP_CodeSniffer | |
run: phpcs --extensions=php app | |
- name: Copy/Paste Detector | |
run: phpcpd app/ --min-lines=50 | |
build-container: | |
name: Build Container | |
runs-on: ubuntu-latest | |
steps: | |
- name: configure docker buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: login to github container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: setup container metadata | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
ghcr.io/${{ env.IMAGE_NAME }} | |
tags: | | |
type=ref,event=pr | |
type=sha,event=branch,prefix= | |
type=semver,event=tag,pattern=v{{version}} | |
type=semver,event=tag,pattern=v{{major}} | |
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }} | |
- name: build & push container image | |
uses: docker/build-push-action@v4 | |
with: | |
context: "{{defaultContext}}:." | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
platforms: ${{ env.TARGET_PLATFORMS }} |