Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 79 additions & 2 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -403,13 +403,90 @@ See `.github/scripts/README.md` for detailed script documentation.

Tests Docker Compose configuration.

### 8. Quickstart (`quickstart.yml`)
### 8. Setup & Install with Error Handling (`setup.yml`)

**Trigger:** Manual dispatch only

**Purpose:** Provides a complete application setup workflow with granular error handling and selective step execution for debugging

**What it does:**
1. **Yarn Install** - Installs JavaScript dependencies
2. **Composer Install** - Installs PHP dependencies
3. **Environment Setup** - Copies `.env.example` to `.env`
4. **Key Generation** - Runs `php artisan key:generate`
5. **Database Migration** - Runs `php artisan migrate --force`
6. **Database Seeding** - Runs `php artisan db:seed`

**Key Features:**

**Selective Step Execution:**
- Each step can be individually enabled or disabled via workflow inputs
- Allows running only specific steps for debugging
- Default: All steps enabled

**Error Handling:**
- Uses `set +e` to continue execution after errors
- Each step captures its exit code
- Errors are logged to a central error report
- Workflow continues even if steps fail
- Final step reports all errors in a consolidated summary

**Error Reporting:**
- Errors logged with step name and exit code
- Detailed error report at workflow end
- GitHub Actions summary shows pass/fail status for each step
- Individual step logs preserved for debugging

**Usage:**

To run the full setup:
1. Go to **Actions** tab
2. Select **Setup & Install with Error Handling**
3. Click **Run workflow**
4. Leave all options as "true" (default)
5. Click **Run workflow**

To debug specific steps:
1. Go to **Actions** tab
2. Select **Setup & Install with Error Handling**
3. Click **Run workflow**
4. Set unwanted steps to "false"
5. Click **Run workflow**

**Example Scenarios:**

**Full Setup:**
- All inputs set to `true` (default)
- Runs complete installation from scratch

**Debug Seeding Only:**
- `run_seed`: `true`
- All others: `false`
- Useful for testing seeder changes

**Debug Migration + Seeding:**
- `run_migrate`: `true`
- `run_seed`: `true`
- All others: `false`
- Useful for testing database setup
Comment on lines +465 to +471
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "Debug Seeding Only" example suggests running only the seed step with all others disabled. However, seeding requires the database migrations to be run first, and migrations require the .env file and APP_KEY. This example scenario may confuse users. Consider clarifying that this scenario assumes the database schema is already in place, or recommend running migrations along with seeding for a complete database setup test.

Suggested change
- Useful for testing seeder changes
**Debug Migration + Seeding:**
- `run_migrate`: `true`
- `run_seed`: `true`
- All others: `false`
- Useful for testing database setup
- Useful for testing seeder changes when the database schema is already in place and `.env` / `APP_KEY` are configured (for fresh setups, use "Debug Migration + Seeding" below)
**Debug Migration + Seeding:**
- `run_migrate`: `true`
- `run_seed`: `true`
- All others: `false`
- Useful for testing database setup (migrations + seeders) end-to-end

Copilot uses AI. Check for mistakes.

**Infrastructure:**
- MariaDB 10.6 service container
- PHP 8.4 with required extensions
- Node.js 22 with Yarn caching

**Known Issues Fixed:**
- ✅ AddressFactory faker instance issue fixed (now uses `$this->faker` consistently)
- ✅ Yarn EISDIR errors handled gracefully
- ✅ All errors collected and reported at the end

### 9. Quickstart (`quickstart.yml`)

**Trigger:** Manual dispatch only

Provides a quick setup for development environments.

### 9. Crowdin Translation Sync (`crowdin-sync.yml`)
### 10. Crowdin Translation Sync (`crowdin-sync.yml`)

**Trigger:**
- Scheduled: Weekly on Sundays at 2:00 AM UTC
Expand Down
Loading