use rust-webapp image for release use npm rather than pnpm use node 24 use rust latest image add cache to release check for tag before releasing check for tag before releasing release 0.0.3
69 lines
2.2 KiB
YAML
69 lines
2.2 KiB
YAML
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"
|
|
|