위젯 집합 게시
Foundry CI/CD, @osdk/cli 또는 UI의 ZIP 업로드로 위젯 집합의 새 버전을 게시할 수 있습니다. 새 버전이 게시되어도 기존 사용처는 자동으로 바뀌지 않으므로 각 Workshop 등 호스트에서 사용할 버전을 갱신합니다.
프로덕션 빌드
로컬에서는 개발 준비에 따라 FOUNDRY_TOKEN 환경변수를 공급하고 프로젝트 루트에서 의존성 설치, lint와 build를 차례로 실행합니다. CI/CD는 보통 이 단계를 자동화합니다.
: "${FOUNDRY_TOKEN:?FOUNDRY_TOKEN 환경변수를 먼저 공급하세요}" && npm install && npm run lint && npm run build
빌드 출력의 구조 예는 다음과 같습니다.
dist/
├── .palantir
│ └── widgets.config.json
├── assets
│ ├── allPaths-1o-wu5D1.js
│ ├── allPathsLoader-B5dDtRyf.js
│ ├── index-BKzgFDAn.js
│ ├── index-BvSuWPlB.js
│ ├── index-fzE76D9V.css
│ ├── index-JZHrjpfy.js
│ └── splitPathsBySizeLoader-BdSoFTZJ.js
└── index.html
.palantir/widgets.config.json은 포함한 위젯과 게시할 버전을 기술하는 manifest입니다. 템플릿의 @osdk/widget.vite-plugin이 보통 코드에서 생성합니다.
foundry.config.json의 widgetSet.autoVersion이 버전 계산을 정합니다.
| 값 | 버전 출처 |
|---|---|
| package-json | package.json의 version입니다. |
| git-describe | Git 태그와 커밋을 바탕으로 계산합니다. |
UI로 ZIP 업로드
ZIP 루트에 빌드 내용이 바로 들어가야 합니다. dist 같은 상위 디렉터리를 한 겹 더 넣지 않습니다. 숨김 .palantir manifest도 포함해야 합니다.
프로젝트 루트에서 새 asset.zip을 만드는 예입니다. 같은 이름의 이전 파일이 있다면 새 출력 이름을 사용합니다.
(cd dist && zip -r ../asset.zip .)
위젯 집합 페이지의 Upload release를 열고 ZIP을 끌어 놓은 뒤 Upload를 선택합니다.
CLI
빌드한 프로젝트 루트에서 다음 명령을 실행합니다. CLI가 ZIP을 만들고 게시합니다.
npx @osdk/cli@latest widgetset deploy
게시 버전은 manifest의 값을 사용합니다. 터미널의 실제 결과에서 선택한 버전과 게시 완료 여부를 확인합니다. 외부 CI/CD도 의존성 준비와 빌드 뒤 같은 배포 명령을 실행하도록 구성할 수 있습니다.
Foundry CI/CD
Foundry Code Repository에서 만드는 위젯 집합은 태그 빌드에 자동 게시가 연결되어 있습니다. 게시할 태그명을 WIDGET_VERSION 환경변수로 준비한 뒤 생성하고 push합니다.
: "${WIDGET_VERSION:?게시할 버전 태그명을 공급하세요}" && git tag -- "$WIDGET_VERSION" && git push origin "refs/tags/$WIDGET_VERSION"
VS Code Workspaces 또는 Code Repositories의 Tags에서 해당 태그를 선택하여 빌드 상태를 확인합니다.
게시 뒤 호스트의 위젯 선택을 새 버전으로 바꿔야 사용자에게 변경이 보입니다.