name: Build MIPS Binary on: push: branches: [ "main" ] workflow_dispatch: permissions: contents: write env: CARGO_TERM_COLOR: always jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Debug - List Files (Pre-Build) run: ls -R - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Install Rust uses: dtolnay/rust-toolchain@nightly with: targets: wasm32-unknown-unknown components: rust-src - name: Rust Cache uses: Swatinem/rust-cache@v2 - name: Install Trunk uses: jetli/trunk-action@v0.5.0 with: version: 'latest' - name: Build Frontend run: | cd frontend npm install trunk build --release - name: Install Cross run: cargo install cross - name: Build Backend (MIPS) env: RUSTUP_TOOLCHAIN: nightly CROSS_NO_WARNINGS: 0 run: | cd backend cross build --target mips-unknown-linux-musl --release -Z build-std=std,panic_abort - name: Debug - List Files run: | echo "Listing target directory..." find target -maxdepth 5 || true ls -R target/mips-unknown-linux-musl/release || true - name: Rename Binary run: mv target/mips-unknown-linux-musl/release/backend target/mips-unknown-linux-musl/release/vibetorrent-mips - name: Generate Tag id: tag run: echo "release_tag=release-$(date +'%Y%m%d-%H%M')" >> $GITHUB_OUTPUT - name: Create Release uses: softprops/action-gh-release@v1 with: tag_name: ${{ steps.tag.outputs.release_tag }} name: Release ${{ steps.tag.outputs.release_tag }} files: target/mips-unknown-linux-musl/release/vibetorrent-mips draft: false prerelease: false