Skip to content

fix: 캔버스 로드 시 워크플로우 이름이 아닌 workflow_id 사용 #47

fix: 캔버스 로드 시 워크플로우 이름이 아닌 workflow_id 사용

fix: 캔버스 로드 시 워크플로우 이름이 아닌 workflow_id 사용 #47

Workflow file for this run

name: Build & Release Desktop App
on:
push:
tags: ['v*']
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
TAURI_ENV: "true"
NEXT_PUBLIC_BACKEND_HOST: "https://xgen.x2bee.com"
NEXT_PUBLIC_BACKEND_PORT: ""
GRAPH_TOOL_CALL_VERSION: "0.19.1"
jobs:
build-linux:
runs-on: ubuntu-22.04
timeout-minutes: 90
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Build graph-tool-call sidecar (Linux)
run: |
pip install "graph-tool-call[mcp]==$GRAPH_TOOL_CALL_VERSION" pyinstaller
ENTRY=$(python -c "import graph_tool_call.__main__; print(graph_tool_call.__main__.__file__)")
pyinstaller --onefile --name graph-tool-call --hidden-import graph_tool_call "$ENTRY"
mkdir -p src-tauri/binaries
cp dist/graph-tool-call "src-tauri/binaries/graph-tool-call-x86_64-unknown-linux-gnu"
chmod +x "src-tauri/binaries/graph-tool-call-x86_64-unknown-linux-gnu"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Clone & build frontend
run: |
git clone --depth 1 --branch main "https://sonsj97:${{ secrets.GITLAB_TOKEN }}@gitlab.x2bee.com/xgen2.0/xgen-frontend.git" frontend
bash scripts/patch-frontend.sh
cd frontend && npm install && npm run build && cd ..
cp src-cli/cli.html frontend/out/cli.html
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-on-failure: true
- name: Install Tauri CLI
run: cargo install tauri-cli --version "^2"
- name: Build Tauri app (Linux)
working-directory: src-tauri
run: cargo tauri build
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: xgen-linux
path: |
src-tauri/target/release/bundle/deb/*.deb
src-tauri/target/release/bundle/rpm/*.rpm
src-tauri/target/release/bundle/appimage/*.AppImage
build-windows:
runs-on: windows-latest
timeout-minutes: 90
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Build graph-tool-call sidecar (Windows)
shell: bash
run: |
pip install "graph-tool-call[mcp]==$GRAPH_TOOL_CALL_VERSION" pyinstaller
ENTRY=$(python -c "import graph_tool_call.__main__; print(graph_tool_call.__main__.__file__)")
pyinstaller --onefile --name graph-tool-call --hidden-import graph_tool_call "$ENTRY"
mkdir -p src-tauri/binaries
cp dist/graph-tool-call.exe "src-tauri/binaries/graph-tool-call-x86_64-pc-windows-msvc.exe"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Clone & build frontend
shell: bash
run: |
git clone --depth 1 --branch main "https://sonsj97:${{ secrets.GITLAB_TOKEN }}@gitlab.x2bee.com/xgen2.0/xgen-frontend.git" frontend
bash scripts/patch-frontend.sh
cd frontend && npm install && npm run build && cd ..
cp src-cli/cli.html frontend/out/cli.html
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-on-failure: true
- name: Install Tauri CLI
run: cargo install tauri-cli --version "^2"
- name: Build Tauri app (Windows)
working-directory: src-tauri
run: cargo tauri build
- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: xgen-windows
path: |
src-tauri/target/release/bundle/msi/*.msi
src-tauri/target/release/bundle/nsis/*.exe
build-macos:
runs-on: macos-latest
timeout-minutes: 90
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Build graph-tool-call sidecar (macOS)
run: |
pip install "graph-tool-call[mcp]==$GRAPH_TOOL_CALL_VERSION" pyinstaller
ENTRY=$(python -c "import graph_tool_call.__main__; print(graph_tool_call.__main__.__file__)")
pyinstaller --onefile --name graph-tool-call --hidden-import graph_tool_call "$ENTRY"
mkdir -p src-tauri/binaries
cp dist/graph-tool-call "src-tauri/binaries/graph-tool-call-aarch64-apple-darwin"
chmod +x "src-tauri/binaries/graph-tool-call-aarch64-apple-darwin"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Clone & build frontend
run: |
git clone --depth 1 --branch main "https://sonsj97:${{ secrets.GITLAB_TOKEN }}@gitlab.x2bee.com/xgen2.0/xgen-frontend.git" frontend
bash scripts/patch-frontend.sh
cd frontend && npm install && npm run build && cd ..
cp src-cli/cli.html frontend/out/cli.html
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: src-tauri
cache-on-failure: true
- name: Install Tauri CLI
run: cargo install tauri-cli --version "^2"
- name: Build Tauri app (macOS)
working-directory: src-tauri
run: cargo tauri build
- name: Upload macOS artifacts
uses: actions/upload-artifact@v4
with:
name: xgen-macos
path: |
src-tauri/target/release/bundle/dmg/*.dmg
src-tauri/target/release/bundle/macos/*.app
release:
needs: [build-linux, build-windows, build-macos]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: List artifacts
run: find artifacts -type f | head -30
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
artifacts/xgen-linux/**/*
artifacts/xgen-windows/**/*
artifacts/xgen-macos/**/*