diff --git a/.env.example b/.env.example index a1b3de4..acec273 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,9 @@ -APP_NAME=Laravel +APP_NAME=Monitoring APP_ENV=local APP_KEY= APP_DEBUG=true APP_TIMEZONE=UTC -APP_URL=http://localhost + APP_LOCALE=en APP_FALLBACK_LOCALE=en @@ -21,13 +21,6 @@ LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug -DB_CONNECTION=sqlite -# DB_HOST=127.0.0.1 -# DB_PORT=3306 -# DB_DATABASE=laravel -# DB_USERNAME=root -# DB_PASSWORD= - SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false @@ -64,3 +57,35 @@ AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}" +# Configurações Mínimas em dev + +QUEUE_CONNECTION=sync + +MAIL_MAILER=smtp +MAIL_HOST=mailpit +MAIL_PORT=1025 +MAIL_USERNAME= +MAIL_PASSWORD= +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS=test@example.com +MAIL_FROM_NAME="Laravel" + +DB_CONNECTION=mariadb +DB_HOST=mariadb +DB_PORT=3306 +DB_DATABASE=monitoring +DB_USERNAME=monitoring +DB_PASSWORD=monitoring + +APP_URL=http://monitoring +DUSK_DRIVER_URL='http://selenium:4444/wd/hub' +DUSK_START_MAXIMIZED=true +DUSK_HEADLESS_DISABLED=true + +SENHAUNICA_KEY=faker +SENHAUNICA_SECRET=faker +SENHAUNICA_CALLBACK_ID=1 +SENHAUNICA_ADMINS=111111 +SENHAUNICA_DEV="http://auth.local:3141/wsusuario/oauth" + +USP_THEME_SKIN=fflch # ou uspdev \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e646352..3b777b2 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -21,14 +21,14 @@ jobs: uses: docker/login-action@v3 with: registry: ghcr.io - username: $ - password: $ + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata id: meta uses: docker/metadata-action@v5 with: - images: ghcr.io/$ + images: ghcr.io/${{ github.repository }} tags: | type=ref,event=tag @@ -37,8 +37,8 @@ jobs: with: context: . push: true - tags: $ + tags: ${{ steps.meta.outputs.tags }} labels: | - org.opencontainers.image.source=https://github.com/$ - org.opencontainers.image.description=Container image for $ - org.opencontainers.image.licenses=MIT + org.opencontainers.image.source=https://github.com/${{ github.repository }} + org.opencontainers.image.description=Container image for ${{ github.repository }} + org.opencontainers.image.licenses=MIT \ No newline at end of file diff --git a/.github/workflows/dusk.yml b/.github/workflows/dusk.yml index bcb8892..341f4d6 100644 --- a/.github/workflows/dusk.yml +++ b/.github/workflows/dusk.yml @@ -8,80 +8,58 @@ jobs: dusk: runs-on: ubuntu-latest - services: - mariadb: - image: mariadb:10.11 - env: - MARIADB_DATABASE: db - MARIADB_ROOT_PASSWORD: admin - MARIADB_USER: admin - MARIADB_PASSWORD: admin - MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: yes - ports: - - 3306:3306 - options: >- - --health-cmd="mysqladmin ping --silent" - --health-interval=5s - --health-timeout=5s - --health-retries=10 + env: + SERVICE_NAME: monitoring steps: - name: Checkout uses: actions/checkout@v4 - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 8.4 - extensions: mbstring, dom, pdo, mysql - coverage: none - - - name: Install Composer dependencies - run: composer install --no-progress --prefer-dist --optimize-autoloader - - # 1. Copia o .env.example direto para .env - - name: Copy env from example + - name: Create .env run: cp .env.example .env - # 2. Remove as variáveis visuais do Dusk caso existam no .env - - name: Remove Dusk visual variables + - name: Add auth.local to hosts to senhaunica-faker works properly run: | - sed -i '/DUSK_START_MAXIMIZED/d' .env || true - sed -i '/DUSK_HEADLESS_DISABLED/d' .env || true + echo "127.0.0.1 auth.local" | sudo tee -a /etc/hosts - # 3. Injeta as configurações do Dusk e do Banco de Dados no .env gerado - - name: Configure .env file for testing + - name: Set UID/GID run: | - echo "APP_URL=http://127.0.0.1:47800" >> .env - echo "DUSK_DRIVER_URL=http://localhost:9515" >> .env - echo "DB_CONNECTION=mysql" >> .env - echo "DB_HOST=127.0.0.1" >> .env - echo "DB_PORT=3306" >> .env - echo "DB_DATABASE=db" >> .env - echo "DB_USERNAME=admin" >> .env - echo "DB_PASSWORD=admin" >> .env + echo "UID=$(id -u)" >> $GITHUB_ENV + echo "GID=$(id -g)" >> $GITHUB_ENV - - name: Generate APP_KEY - run: php artisan key:generate + - name: Build and start containers + run: docker compose up -d --build - name: Wait for MariaDB run: | - for i in {1..30}; do - mysqladmin ping -h127.0.0.1 -P3306 --silent && break + for i in {1..40}; do + if docker compose exec -T mariadb mariadb -u${{ env.SERVICE_NAME }} -p${{ env.SERVICE_NAME }} -e "SELECT 1;" &> /dev/null; then + echo "MariaDB is ready" + exit 0 + fi + echo "Waiting for MariaDB..." sleep 2 done - - name: Run migrations - run: php artisan migrate --force + - name: Install Composer dependencies + run: docker compose exec -T ${{ env.SERVICE_NAME }} composer install --no-interaction --prefer-dist - - name: Install Chrome - uses: browser-actions/setup-chrome@v1 + - name: Generate APP_KEY + run: docker compose exec -T ${{ env.SERVICE_NAME }} php artisan key:generate - - name: Install ChromeDriver - run: php artisan dusk:chrome-driver --detect + - name: Run migrations + run: docker compose exec -T ${{ env.SERVICE_NAME }} php artisan migrate --force - - name: Start Laravel server - run: php artisan serve --port=47800 & + - name: Install ChromeDriver + run: docker compose exec -T ${{ env.SERVICE_NAME }} php artisan dusk:chrome-driver --detect - name: Run Dusk - run: php artisan dusk --without-tty \ No newline at end of file + run: docker compose exec -T ${{ env.SERVICE_NAME }} php artisan dusk --without-tty + + - name: Show logs on failure + if: failure() + run: docker compose logs + + - name: Stop containers + if: always() + run: docker compose down -v