name: Test Linux Build on: push: tags: - 'v*.*.*-test*' permissions: contents: write env: CARGO_INCREMENTAL: 0 RUST_BACKTRACE: short concurrency: group: '${{ github.workflow }}-${{ github.ref }}' cancel-in-progress: true jobs: build-linux: name: Build Linux test package (x86_64) runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install Rust uses: dtolnay/rust-toolchain@stable with: targets: x86_64-unknown-linux-gnu - name: Rust cache uses: Swatinem/rust-cache@v2 with: prefix-key: 'v1' key: 'ubuntu-22.04-x86_64-unknown-linux-gnu-test' workspaces: src-tauri -> target - name: Install Linux dependencies run: | sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ patchelf - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Bun uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Get linked dependency versions id: dep-versions shell: bash run: | SM_SHA=$(git -C libs/stream-monaco rev-parse HEAD) MS_SHA=$(git -C libs/markstream-vue rev-parse HEAD) echo "cache-key=${{ runner.os }}-x86_64-unknown-linux-gnu-test-linked-deps-${SM_SHA:0:12}-${MS_SHA:0:12}" >> "$GITHUB_OUTPUT" - name: Cache linked dependencies id: cache-linked-deps uses: actions/cache@v4 with: path: | libs/stream-monaco/node_modules libs/stream-monaco/dist libs/markstream-vue/node_modules libs/markstream-vue/packages/markdown-parser/node_modules libs/markstream-vue/packages/markdown-parser/dist libs/markstream-vue/packages/markstream-react/node_modules libs/markstream-vue/packages/markstream-react/dist key: ${{ steps.dep-versions.outputs.cache-key }} - name: Build linked dependencies if: steps.cache-linked-deps.outputs.cache-hit != 'true' run: | bun --cwd libs/stream-monaco install --frozen-lockfile bun --cwd libs/stream-monaco run build bun --cwd libs/markstream-vue install --frozen-lockfile bun --cwd libs/markstream-vue run build:parser bun --cwd libs/markstream-vue/packages/markstream-react run build - name: Install frontend dependencies run: bun install --frozen-lockfile - name: Build Linux bundles run: bun run tauri build --target x86_64-unknown-linux-gnu --bundles appimage,rpm,deb env: NODE_OPTIONS: '--max_old_space_size=4096' BOOSAPI_TEST_BUILD: '1' TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} - name: Publish Linux test release uses: softprops/action-gh-release@v2 with: tag_name: ${{ github.ref_name }} name: 'BoosApi ${{ github.ref_name }}' body: | Linux test build for issue #83 diagnostics. If BoosApi still opens as a blank window, start it with: ```bash BOOSAPI_LOG_FILE="$HOME/boosapi-${{ github.ref_name }}.log" RUST_LOG=debug BOOSAPI_ENABLE_DEVTOOLS=1 ./BoosApi_0.0.76_amd64.AppImage ``` For the RPM install: ```bash BOOSAPI_LOG_FILE="$HOME/boosapi-${{ github.ref_name }}-rpm.log" RUST_LOG=debug BOOSAPI_ENABLE_DEVTOOLS=1 BoosApi ``` If the log still stops around `builder.build(context)`, run the minimal-plugin diagnostic path: ```bash BOOSAPI_LOG_FILE="$HOME/boosapi-${{ github.ref_name }}-minimal.log" RUST_LOG=debug BOOSAPI_ENABLE_DEVTOOLS=1 BOOSAPI_LINUX_MINIMAL_PLUGINS=1 ./BoosApi_0.0.76_amd64.AppImage ``` Please attach the generated log file back to issue #83. draft: false prerelease: true make_latest: false token: ${{ secrets.GITHUB_TOKEN }} files: | src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage.sig src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/rpm/*.rpm src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/rpm/*.rpm.sig src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb/*.deb src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb/*.deb.sig