chore: remove retired workflow and historical material
This commit is contained in:
@@ -1,122 +0,0 @@
|
||||
# 개발 환경과 실행 방법
|
||||
|
||||
## 최초 준비
|
||||
|
||||
Windows에서 Visual Studio의 Desktop development with C++ 워크로드, CMake 3.25 이상,
|
||||
Ninja, Intel oneAPI MKL·TBB, HDF5 C package와 승인된 GoogleTest 로컬 checkout을 준비한다.
|
||||
Runner는 Python 3.10 이상, `tomllib`을 사용하는 Python 검사에는 3.11 이상이 필요하다.
|
||||
자동 dependency download나 특정 개인 설치 경로를 전제하지 않는다.
|
||||
|
||||
저장소 루트를 작업 디렉터리로 하는 **MSVC x64 Developer PowerShell**을 연다.
|
||||
일반 PowerShell에서 아래 configure를 먼저 실행하면 compiler와 runtime 환경이 빠질 수 있다.
|
||||
설치 경로가 환경변수에 없다면 아래 질문에 실제 로컬 경로를 입력한다.
|
||||
|
||||
```powershell
|
||||
$env:FESA_GTEST_SOURCE_DIR = Read-Host 'GoogleTest source checkout 경로'
|
||||
$env:MKL_DIR = Read-Host 'MKLConfig.cmake가 있는 디렉터리'
|
||||
$env:TBB_DIR = Read-Host 'TBBConfig.cmake가 있는 디렉터리'
|
||||
$env:HDF5_DIR = Read-Host 'hdf5-config.cmake 또는 HDF5Config.cmake가 있는 디렉터리'
|
||||
Get-Command cl, cmake, ctest, ninja, python
|
||||
Test-Path -LiteralPath (Join-Path $env:FESA_GTEST_SOURCE_DIR 'CMakeLists.txt')
|
||||
```
|
||||
|
||||
`FESA_GTEST_SOURCE_DIR`는 source root, 나머지 세 변수는 CMake package config directory다.
|
||||
네 값은 현재 프로세스·개인 설정에 두며 저장소의 절대 경로로 고정하지 않는다.
|
||||
`Test-Path`가 false이거나 명령이 없으면 먼저 준비 환경을 수정한다.
|
||||
|
||||
## C++ 구성·빌드·검사
|
||||
|
||||
다음 순서로 실행한다. Configure 전에 dependency 경로와 x64 compiler가 준비되어야 하며,
|
||||
build 전에 configure가 성공해야 한다. 각 명령이 실패하면 다음 단계로 진행하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake --preset windows-msvc-ninja-debug
|
||||
cmake --build --preset windows-msvc-ninja-debug
|
||||
ctest --preset windows-msvc-ninja-debug --show-only=json-v1
|
||||
ctest --preset windows-msvc-ninja-debug --output-on-failure
|
||||
```
|
||||
|
||||
Build tree는 `.harness/build-ninja-msvc-debug`다. CTest discovery는 실제 등록된 검사를
|
||||
확인하며 0개 검사는 검증 성공이 아니다. 관련 검사만 실행할 때는 같은 preset에 `-R`로
|
||||
실제 CTest 이름을 지정한다. 솔버 기능 완료 시 전체 검사와 필수 수치/reference 비교를
|
||||
수행하고, 문서만 수정할 때는 실행하지 않는다.
|
||||
|
||||
## 설정된 실행기로 검증
|
||||
|
||||
개인 `.harness/config.json`이 이미 있으면 보존하고 실제 선택된 backend를 확인한다.
|
||||
동일 preset을 사용하려면 다음 설정을 사용한다. 기존 설정을 무조건 덮어쓰지 않는다.
|
||||
|
||||
```json
|
||||
{
|
||||
"version": 1,
|
||||
"projectType": "cmake",
|
||||
"cmake": {
|
||||
"sourceDir": ".",
|
||||
"binaryDir": ".harness/build-ninja-msvc-debug",
|
||||
"configurePreset": "windows-msvc-ninja-debug",
|
||||
"buildPreset": "windows-msvc-ninja-debug",
|
||||
"testPreset": "windows-msvc-ninja-debug"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```powershell
|
||||
python scripts/execute.py
|
||||
```
|
||||
|
||||
실행기는 명령을 한 번 구성·실행하고 compiler metadata와 CTest discovery를 확인한다.
|
||||
전체 deadline은 CLI 시작부터 1,800초이며 각 명령 제한과 남은 시간 중 짧은 값을 적용한다.
|
||||
Phase 인자·`--push`·`--approve-danger-full-access`를 받지 않는다. 자동 Git·retry·외부
|
||||
solver 실행이나 필요한 추가 reference 비교의 추론은 하지 않는다.
|
||||
|
||||
최근 전체617개 회귀는 개별 검사 시간 합계가 약6,859초였으므로 기본1,800초 runner로
|
||||
전체 완료를 기대하면 안 된다. 긴 전체 회귀는 위 MSVC 환경의 명시 CMake/CTest preset
|
||||
명령으로 실행하고 실제 native 종료·전체 verdict를 보존한다. Timeout이나 중단된 로그를
|
||||
부분 성공으로 계산하거나 문서 정리를 이유로 runner 제한·검사를 임의 변경하지 않는다.
|
||||
|
||||
성공은 exit 0, config/toolchain/backend/timeout 실패는 exit 1이다. 잘못된 CLI 인자나
|
||||
자동 감지에서 project metadata가 없는 경우는 exit 2다. 원래 backend exit와 runner exit를
|
||||
구분해 기록하고 출력 tail에 포함된 stage·argv·cwd에서 실패 경계를 찾는다.
|
||||
|
||||
## Python 검사와 비교 도구
|
||||
|
||||
Runner 또는 Python 비교기를 변경하면 관련 Python 검사를 별도로 실행한다.
|
||||
전체 Python 검사 명령은 다음과 같으며 CTest 실행에 포함되지 않는다.
|
||||
|
||||
```powershell
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
```
|
||||
|
||||
HHT 비교 도구에는 Python 3.11 이상과 `numpy`·`h5py`가 필요하다. 현재 도구는 지정된
|
||||
`shellNL-dyn-meshfine`의 729개 절점 중 선택한 9개 절점, 101 frames의 U/UR 비교용이다.
|
||||
다음 명령은 **이미 생성된** HDF5와 원본 변위 CSV를 비교하며 솔버나 Abaqus를 실행하지 않는다.
|
||||
다른 모델의 범용 비교기로 사용하지 않는다. Report의 상위 디렉터리는 도구가 생성한다.
|
||||
|
||||
```powershell
|
||||
$inputPath = Read-Host '비교할 원본 .inp 경로'
|
||||
$referencePath = Read-Host '원본 변위 CSV 경로'
|
||||
$resultPath = Read-Host 'FESA HDF5 경로'
|
||||
$reportPath = Read-Host '비교 보고서 JSON 경로'
|
||||
uv run --with numpy --with h5py python scripts/verification/compare_hht_dynamic.py --input $inputPath --reference $referencePath --results $resultPath --report $reportPath
|
||||
```
|
||||
|
||||
Reference 원본을 생성·복원하거나 다른 곳으로 옮기는 명령은 검증 절차에 포함하지 않는다.
|
||||
원본이 없으면 필요한 경로와 미실행 이유를 보고한다. 외부 solver와 라이선스 사용은
|
||||
별도 명시된 권한 아래 수행한다.
|
||||
|
||||
## 모델 실행과 배포 상태
|
||||
|
||||
성공한 Debug build 뒤 생성된 CLI를 실행한다. 모델 경로는 실제 승인된 입력을 지정한다.
|
||||
|
||||
```powershell
|
||||
$modelPath = Read-Host '해석할 .inp 경로'
|
||||
& ./.harness/build-ninja-msvc-debug/src/fesa/fesa.exe $modelPath
|
||||
```
|
||||
|
||||
입력 옆에 `<stem>_results.h5`와 `<stem>_log.txt`를 생성하므로 해당 디렉터리에 쓸 수
|
||||
있어야 한다. 실행 실패 때 이전 HDF5가 남아 있을 수 있으므로 파일 존재만으로 이번 실행의
|
||||
성공을 판단하지 않는다. Exit와 진단, 실제 저장된 source identity를 함께 확인한다.
|
||||
|
||||
현재 별도의 데이터베이스 초기화·계정 생성·서비스 배포 명령은 없다. 외부 사용자 배포의
|
||||
형식, 설치 방식, dependency 재배포 조건과 지원 범위는 아직 정하지 않았다. 로컬 실행
|
||||
성공을 설치·배포 검증으로 간주하지 않는다.
|
||||
Reference in New Issue
Block a user