Unify templates & designs interface #516
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
on: | |
push: | |
branches: | |
- develop | |
pull_request: | |
branches: | |
- develop | |
name: playwright | |
jobs: | |
run: | |
runs-on: ${{ matrix.operating-system }} | |
strategy: | |
matrix: | |
operating-system: ['ubuntu-22.04'] | |
php-versions: ['8.2'] | |
phpunit-versions: ['latest'] | |
laravel: [10.*] | |
dependency-version: [prefer-stable] | |
env: | |
DB_CONNECTION: mysql | |
DB_DATABASE1: ninja | |
DB_USERNAME1: root | |
DB_PASSWORD1: ninja | |
DB_HOST1: '127.0.0.1' | |
DB_DATABASE: ninja | |
DB_USERNAME: root | |
DB_PASSWORD: ninja | |
DB_HOST: '127.0.0.1' | |
REDIS_PORT: 6379 | |
BROADCAST_DRIVER: log | |
CACHE_DRIVER: redis | |
QUEUE_CONNECTION: redis | |
SESSION_DRIVER: redis | |
NINJA_ENVIRONMENT: hosted | |
MULTI_DB_ENABLED: false | |
NINJA_LICENSE: ${{ secrets.ninja_license }} | |
TRAVIS: true | |
MAIL_MAILER: log | |
services: | |
mariadb: | |
image: mariadb:10.6 | |
ports: | |
- 32768:3306 | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: yes | |
MYSQL_USER: ninja | |
MYSQL_PASSWORD: ninja | |
MYSQL_DATABASE: ninja | |
MYSQL_ROOT_PASSWORD: ninja | |
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 | |
redis: | |
image: redis | |
ports: | |
- 6379/tcp | |
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
steps: | |
- name: Add hosts to /etc/hosts | |
run: | | |
sudo echo "127.0.0.1 ninja.test" | sudo tee -a /etc/hosts | |
- name: Start MariaDB service | |
run: | | |
sudo systemctl start mysql.service | |
- name: Verify MariaDB connection | |
env: | |
DB_PORT: ${{ job.services.mariadb.ports[3306] }} | |
DB_PORT1: ${{ job.services.mariadb.ports[3306] }} | |
run: | | |
while ! mysqladmin ping -h"127.0.0.1" -P"$DB_PORT" --silent; do | |
sleep 1 | |
done | |
- name: Setup PHP shivammathur/setup-php@v2 | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-versions }} | |
extensions: mysql, mysqlnd, sqlite3, bcmath, gmp, gd, curl, zip, openssl, mbstring, xml, redis | |
- name: Build ninja | |
run: | | |
git clone --depth 1 https://${{secrets.commit_secret}}@github.com/invoiceninja/invoiceninja.git -b v5-develop | |
cd invoiceninja | |
composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }} | |
composer install | |
cp .env.ci .env | |
- name: Prepare Laravel Application | |
env: | |
REDIS_PORT: ${{ job.services.redis.ports['6379'] }} | |
run: | | |
cd invoiceninja | |
php artisan key:generate | |
php artisan config:clear | |
php artisan ninja:post-update | |
php artisan optimize | |
vendor/bin/snappdf download | |
sudo find ./vendor/bin/ -type f -exec chmod +x {} \; | |
sudo find ./ -type d -exec chmod 755 {} \; | |
php artisan migrate:fresh --seed | |
php artisan db:seed --class=RandomDataSeeder | |
- name: Prepare React FrontEnd | |
run: | | |
git clone https://${{secrets.commit_secret}}@github.com/invoiceninja/ui.git | |
cd ui | |
git checkout develop | |
npm i | |
npm run build | |
mkdir -p ../public/react/${{ github.event.release.tag_name }}/ | |
cp -r dist/react/* ../public/react/${{ github.event.release.tag_name }}/ | |
cp -r dist/react/* ../public/react/ | |
mkdir -p ../public/tinymce_6.4.2/tinymce/js/ | |
cp -r node_modules/tinymce ../public/tinymce_6.4.2/tinymce/js/ | |
cd .. | |
- name: Run Playwright | |
run: | | |
cd invoiceninja | |
php artisan ninja:react | |
cd .. | |
cd ui | |
npx playwright install | |
npx playwright test --workers=1 --reporter=list | |