diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..75b7504 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,59 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + +jobs: + frontend: + name: Frontend (tsc + vite build) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Build frontend + run: npm run build + + rust: + name: Rust (cargo check — ${{ matrix.platform }}) + strategy: + fail-fast: false + matrix: + platform: + - windows-latest + - macos-latest + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - uses: dtolnay/rust-toolchain@stable + + - uses: swatinem/rust-cache@v2 + with: + workspaces: src-tauri + + - name: Install dependencies + run: npm ci + + # tauri::generate_context! がコンパイル時に frontendDist (../dist) を要求するため、 + # cargo check の前にフロントエンドをビルドしておく + - name: Build frontend + run: npm run build + + - name: Check Rust backend + run: cargo check --manifest-path src-tauri/Cargo.toml