Some checks failed
Main Confidence / confidence (push) Failing after 3m36s
## Summary - add explicit Gitea workflow files for PR Fast Feedback, `dev` Confidence, Heavy Governance, and Browser lanes - extend the repo-truth lane support seams with workflow profiles, trigger-aware budget enforcement, artifact publication contracts, CI summaries, and failure classification - add deterministic artifact staging, new CI governance guard coverage, and Spec 210 planning/contracts/docs updates ## Validation - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Guards/CiFastFeedbackWorkflowContractTest.php tests/Feature/Guards/CiConfidenceWorkflowContractTest.php tests/Feature/Guards/CiHeavyBrowserWorkflowContractTest.php tests/Feature/Guards/CiLaneFailureClassificationContractTest.php tests/Feature/Guards/FastFeedbackLaneContractTest.php tests/Feature/Guards/ConfidenceLaneContractTest.php tests/Feature/Guards/HeavyGovernanceLaneContractTest.php tests/Feature/Guards/BrowserLaneIsolationTest.php tests/Feature/Guards/FixtureLaneImpactBudgetTest.php tests/Feature/Guards/TestLaneManifestTest.php tests/Feature/Guards/TestLaneArtifactsContractTest.php tests/Feature/Guards/TestLaneCommandContractTest.php` - `./scripts/platform-test-lane fast-feedback` - `./scripts/platform-test-lane confidence` - `./scripts/platform-test-lane heavy-governance` - `./scripts/platform-test-lane browser` - `./scripts/platform-test-report fast-feedback` - `./scripts/platform-test-report confidence` ## Notes - scheduled Heavy Governance and Browser workflows stay gated behind `TENANTATLAS_ENABLE_HEAVY_GOVERNANCE_SCHEDULE=1` and `TENANTATLAS_ENABLE_BROWSER_SCHEDULE=1` - the remaining rollout evidence task is capturing the live Gitea run set this PR enables: PR Fast Feedback, `dev` Confidence, manual and scheduled Heavy Governance, and manual and scheduled Browser runs Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #243
73 lines
1.9 KiB
Bash
Executable File
73 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
APP_DIR="${ROOT_DIR}/apps/platform"
|
|
LANE="${1:-}"
|
|
STAGING_DIRECTORY="${2:-}"
|
|
ARTIFACT_DIRECTORY=""
|
|
WORKFLOW_ID="${TENANTATLAS_CI_WORKFLOW_ID:-}"
|
|
TRIGGER_CLASS="${TENANTATLAS_CI_TRIGGER_CLASS:-}"
|
|
|
|
if [[ -z "${LANE}" || -z "${STAGING_DIRECTORY}" ]]; then
|
|
echo "Usage: ./scripts/platform-test-artifacts <lane-id> <staging-directory> [--artifact-directory=storage/logs/test-lanes] [--workflow-id=<id>] [--trigger-class=<trigger>]" >&2
|
|
exit 1
|
|
fi
|
|
|
|
shift 2 || true
|
|
|
|
for arg in "$@"; do
|
|
if [[ "${arg}" == --artifact-directory=* ]]; then
|
|
ARTIFACT_DIRECTORY="${arg#--artifact-directory=}"
|
|
continue
|
|
fi
|
|
|
|
if [[ "${arg}" == --workflow-id=* ]]; then
|
|
WORKFLOW_ID="${arg#--workflow-id=}"
|
|
continue
|
|
fi
|
|
|
|
if [[ "${arg}" == --trigger-class=* ]]; then
|
|
TRIGGER_CLASS="${arg#--trigger-class=}"
|
|
continue
|
|
fi
|
|
|
|
echo "Unknown option: ${arg}" >&2
|
|
exit 1
|
|
done
|
|
|
|
if [[ -n "${WORKFLOW_ID}" ]]; then
|
|
export TENANTATLAS_CI_WORKFLOW_ID="${WORKFLOW_ID}"
|
|
fi
|
|
|
|
if [[ -n "${TRIGGER_CLASS}" ]]; then
|
|
export TENANTATLAS_CI_TRIGGER_CLASS="${TRIGGER_CLASS}"
|
|
fi
|
|
|
|
cd "${APP_DIR}"
|
|
|
|
LANE_ID="${LANE}" \
|
|
STAGING_DIRECTORY="${STAGING_DIRECTORY}" \
|
|
ARTIFACT_DIRECTORY="${ARTIFACT_DIRECTORY}" \
|
|
./vendor/bin/sail php <<'PHP'
|
|
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require 'vendor/autoload.php';
|
|
|
|
$laneId = (string) getenv('LANE_ID');
|
|
$stagingDirectory = (string) getenv('STAGING_DIRECTORY');
|
|
$artifactDirectory = getenv('ARTIFACT_DIRECTORY');
|
|
$artifactDirectory = is_string($artifactDirectory) && trim($artifactDirectory) !== ''
|
|
? $artifactDirectory
|
|
: null;
|
|
|
|
$result = \Tests\Support\TestLaneReport::stageArtifacts($laneId, $stagingDirectory, $artifactDirectory);
|
|
|
|
echo json_encode($result, JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR).PHP_EOL;
|
|
|
|
exit(($result['complete'] ?? false) === true ? 0 : 1);
|
|
PHP |