name: Backend Actions run-name: ${{ gitea.actor }} is running backend actions on: [push] # push: # tags: # - 'v[0-9]+\.[0-9]+\.[0-9]+' jobs: package: runs-on: rust-latest depends-on: ["check-tag"] steps: - uses: actions/checkout@v4 - name: Check for Tag run: ./check-for-tag.sh - name: Create Output Directory if: ${{ steps.check_tag.outputs.release_tag != '' }} run: mkdir package - name: Setup Node if: ${{ steps.check_tag.outputs.release_tag != '' }} uses: actions/setup-node@v4 with: node-version: '24' - name: Load Cache if: ${{ steps.check_tag.outputs.release_tag != '' }} uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git backend/target ui/node_modules key: ${{ runner.os }}-package-${{ hashFiles('backend/Cargo.lock') }}-${{ hashFiles('ui/package-lock.json') }} - name: Install UI Dependencies if: ${{ steps.check_tag.outputs.release_tag != '' }} working-directory: ui run: npm ci - name: Build UI if: ${{ steps.check_tag.outputs.release_tag != '' }} working-directory: ui run: npm run build - name: Copy Output if: ${{ steps.check_tag.outputs.release_tag != '' }} run: cp -rv ui/.output package/ui - name: Build Backend if: ${{ steps.check_tag.outputs.release_tag != '' }} working-directory: backend run: cargo build --release --locked - name: Copy Binary if: ${{ steps.check_tag.outputs.release_tag != '' }} run: cp -v backend/target/release/nuchat package/ - name: Package Output if: ${{ steps.check_tag.outputs.release_tag != '' }} run: tar -cf - package | zstd -19 -T0 -o package.tar.zst - name: Upload Package if: ${{ steps.check_tag.outputs.release_tag != '' }} run: |- curl -X PUT \ -H 'Authorization: token ${{ secrets.PACKAGE_API_KEY }}' \ --upload-file package.tar.zst \ "https://git.molloy.xyz/api/packages/fergus-molloy/generic/nuchat/${{ $RELEASE_TAG }}/nuchat.tar.zst"