feat/SUD-291 #911
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
name: End-to-end Tests | |
on: | |
# Trigger the workflow on push or pull request, | |
# but only for the main branch | |
push: | |
branches: | |
- main | |
- master | |
- develop | |
pull_request: | |
jobs: | |
playwright-e2e: | |
runs-on: ubuntu-latest | |
services: | |
mailhog: | |
image: mailhog/mailhog | |
ports: | |
- 1025:1025 # smtp server | |
- 8025:8025 # web ui | |
postgres: | |
image: postgres | |
env: | |
POSTGRES_DB: default | |
POSTGRES_USER: default | |
POSTGRES_PASSWORD: secret | |
TZ: Europe/Warsaw | |
ports: | |
- 5432:5432 | |
redis: | |
image: redis | |
api: | |
image: escolalms/api:latest | |
ports: | |
- 80:80 | |
options: >- | |
--name api | |
--env LARAVEL_REDIS_PASSWORD= --env VAR2=value2 | |
steps: | |
- run: | | |
docker exec -u 1000 api echo "APP_NAME=Wellms Playwright Demo \ | |
APP_ENV=local \ | |
APP_KEY=base64:pveos6JL8iCwO3MbzoyQpNx6TETMYuUpfZ18CDKl6Cw= \ | |
APP_DEBUG=true \ | |
APP_LOG_LEVEL=debug \ | |
APP_URL=http://localhost:1000 \ | |
DB_CONNECTION=pgsql \ | |
DB_HOST=postgres \ | |
DB_PORT=5432 \ | |
DB_DATABASE=default \ | |
DB_USERNAME=default \ | |
DB_PASSWORD=secret \ | |
BROADCAST_DRIVER=log \ | |
CACHE_DRIVER=redis \ | |
SESSION_DRIVER=cookie \ | |
QUEUE_DRIVER=redis \ | |
QUEUE_CONNECTION=redis \ | |
REDIS_HOST=redis \ | |
REDIS_PASSWORD= \ | |
REDIS_PORT=6379 \ | |
MAIL_DRIVER=smtp \ | |
MAIL_HOST=mailhog \ | |
MAIL_PORT=1025 \ | |
MAIL_USERNAME=null \ | |
MAIL_PASSWORD=null \ | |
MAIL_ENCRYPTION= \ | |
MJML_BINARY_PATH=/usr/bin/mjml \ | |
TRACKER_ENABLED=false" >> .env | |
- run: docker exec -u 1000 api cat .env | |
- run: docker exec -u 1000 api php artisan config:cache | |
- run: docker exec -u 1000 api composer dumpautoload | |
- run: docker exec -u 1000 api php artisan key:generate --force --no-interaction | |
- run: docker exec -u 1000 api php artisan passport:keys --force --no-interaction | |
- run: docker exec -u 1000 api php artisan migrate --force --no-interaction | |
- run: docker exec -u 1000 api php artisan passport:client --personal --no-interaction | |
- run: docker exec -u 1000 api php artisan db:seed --force --no-interaction | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 1 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
- name: Cache node modules | |
id: cache-npm | |
uses: actions/cache@v3 | |
env: | |
cache-name: cache-node-modules | |
with: | |
# npm cache files are stored in `~/.npm` on Linux/macOS | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }} | |
name: List the state of node modules | |
continue-on-error: true | |
run: npm list | |
- name: Node dependencies | |
run: npm i --legacy-peer-deps | |
- name: Build | |
run: cp .env.ci .env && REACT_APP_API_URL=http://localhost npm run --openssl-legacy-provider build | |
- name: Install Playwright | |
run: npx playwright install --with-deps | |
- name: Run your tests | |
run: npm run test:e2e | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: test-results | |
path: test-results | |