From c7f93d96f8780bdba7baa153e12e2d3971e2056c Mon Sep 17 00:00:00 2001 From: Sam Lijin Date: Thu, 5 Dec 2024 14:32:23 -0800 Subject: [PATCH] vscode --- .../build-vscode-release.reusable.yaml | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 .github/workflows/build-vscode-release.reusable.yaml diff --git a/.github/workflows/build-vscode-release.reusable.yaml b/.github/workflows/build-vscode-release.reusable.yaml new file mode 100644 index 000000000..f8185908a --- /dev/null +++ b/.github/workflows/build-vscode-release.reusable.yaml @@ -0,0 +1,83 @@ +name: BAML Release - Build VSCode Extension + +on: + workflow_call: {} + push: + branches: [sam/vsc-release2] + +concurrency: + # suffix is important to prevent a concurrency deadlock with the calling workflow + group: ${{ github.workflow }}-${{ github.ref }}-build-vscode + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + name: Build WASM + steps: + - uses: actions/checkout@v4 + - uses: jdx/mise-action@v2 + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: stable + targets: wasm32-unknown-unknown + - uses: Swatinem/rust-cache@v2 + with: + workspaces: engine + - name: Bindgen + run: cargo install -f wasm-bindgen-cli@0.2.92 + working-directory: engine/baml-schema-wasm + # Set up Node.js + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + cache: "pnpm" + node-version: 20 + cache-dependency-path: | + typescript/**/pnpm-lock.yaml + - name: Install Dependencies + run: pnpm install --frozen-lockfile + working-directory: typescript/ + - name: Build Typescript Project + run: pnpm run build + working-directory: typescript/ + + # Build the VSCode Extension + - name: Build VSCode Extension + id: build + run: | + pnpm run vscode:package + VERSION=$(cat package.json| grep version | cut -d ' ' -f 4 | sed 's/[",]//g') + echo "version=$VERSION" >> $GITHUB_OUTPUT + working-directory: typescript/vscode-ext/packages + + # Upload the artifact (helpful for debugging and manual downloads) + - name: Upload VSCode Extension Artifact + uses: actions/upload-artifact@v4 + with: + name: baml-vscode.vsix + path: typescript/vscode-ext/packages/baml-extension-${{ steps.build.outputs.version }}.vsix + if-no-files-found: error + + # Upload the artifact (helpful for debugging and manual downloads) + - name: Upload VSCode Extension Artifact + uses: actions/upload-artifact@v4 + with: + name: baml-out + path: typescript/vscode-ext/packages/vscode/out + if-no-files-found: error + + # upload the lang server artifact + - name: Upload VSCode Lang Server Extension Artifact + uses: actions/upload-artifact@v4 + with: + name: language-server + path: typescript/vscode-ext/packages/language-server/out + if-no-files-found: error + + - name: VSCode Playground Artifact + uses: actions/upload-artifact@v4 + with: + name: vscode-playground + path: typescript/vscode-ext/packages/web-panel/dist + if-no-files-found: error \ No newline at end of file