Compare commits
3 Commits
a8b83564d9
...
test
| Author | SHA1 | Date | |
|---|---|---|---|
| e7eb9b8b16 | |||
| 726d9c5a09 | |||
| 7826018d61 |
@ -1,74 +0,0 @@
|
|||||||
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: |-
|
|
||||||
TAGS="$(git tag --points-at HEAD)"
|
|
||||||
if [ -n $TAGS ]; then
|
|
||||||
TAG=$(echo "$TAGS" | grep -E '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
|
|
||||||
echo "RELEASE_TAG=$TAG" >> "$GITHUB_ENV"
|
|
||||||
else
|
|
||||||
echo "No release tag found"
|
|
||||||
fi
|
|
||||||
- name: Create Output Directory
|
|
||||||
if: ${{ env.RELEASE_TAG != "" }}
|
|
||||||
run: mkdir package
|
|
||||||
- name: Setup Node
|
|
||||||
if: ${{ env.RELEASE_TAG != "" }}
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: '24'
|
|
||||||
- name: Load Cache
|
|
||||||
if: ${{ env.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: ${{ env.RELEASE_TAG != "" }}
|
|
||||||
working-directory: ui
|
|
||||||
run: npm ci
|
|
||||||
- name: Build UI
|
|
||||||
if: ${{ env.RELEASE_TAG != "" }}
|
|
||||||
working-directory: ui
|
|
||||||
run: npm run build
|
|
||||||
- name: Copy Output
|
|
||||||
if: ${{ env.RELEASE_TAG != "" }}
|
|
||||||
run: cp -rv ui/.output package/ui
|
|
||||||
|
|
||||||
|
|
||||||
- name: Build Backend
|
|
||||||
if: ${{ env.RELEASE_TAG != "" }}
|
|
||||||
working-directory: backend
|
|
||||||
run: cargo build --release --locked
|
|
||||||
- name: Copy Binary
|
|
||||||
if: ${{ env.RELEASE_TAG != "" }}
|
|
||||||
run: cp -v backend/target/release/nuchat package/
|
|
||||||
|
|
||||||
- name: Package Output
|
|
||||||
if: ${{ env.RELEASE_TAG != "" }}
|
|
||||||
run: tar -cf - package | zstd -19 -T0 -o package.tar.zst
|
|
||||||
|
|
||||||
- name: Upload Package
|
|
||||||
if: ${{ env.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"
|
|
||||||
|
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
|||||||
.env
|
.env
|
||||||
package/
|
package/
|
||||||
package.tar.zst
|
*.tar.zst
|
||||||
|
|||||||
16
package.sh
16
package.sh
@ -1,16 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
mkdir package
|
|
||||||
|
|
||||||
pushd backend
|
|
||||||
cargo build --release
|
|
||||||
cp -v target/release/nuchat ../package/
|
|
||||||
popd
|
|
||||||
|
|
||||||
pushd ui
|
|
||||||
pnpm run build
|
|
||||||
cp -rv .output ../package/ui
|
|
||||||
popd
|
|
||||||
|
|
||||||
tar -cf - package/ | zstd -19 -T0 -o package.tar.zst
|
|
||||||
|
|
||||||
36
scripts/environ.sh
Normal file
36
scripts/environ.sh
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function check_tags() {
|
||||||
|
TAGS="$(git tag --points-at HEAD)"
|
||||||
|
if [ -n "$TAGS" ]; then
|
||||||
|
TAG=$(echo "$TAGS" | grep -E '^v[0-9]+.[0-9]+.[0-9]+$' | sort -V | tail -1)
|
||||||
|
else
|
||||||
|
echo "No release tag found"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function package() {
|
||||||
|
PACKAGE_DIR="${PACKAGE_DIR:-package}"
|
||||||
|
mkdir "$PACKAGE_DIR" > /dev/null 2>&1
|
||||||
|
|
||||||
|
pushd backend
|
||||||
|
cargo build --release
|
||||||
|
cp -v target/release/nuchat ../package/
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd ui
|
||||||
|
npm ci
|
||||||
|
npm run build
|
||||||
|
cp -rv .output ../package/ui
|
||||||
|
popd
|
||||||
|
|
||||||
|
|
||||||
|
OUT_FILE="${OUT_FILE:-package.tar.zst}"
|
||||||
|
if [ -f "$OUT_FILE" ]; then
|
||||||
|
rm "$OUT_FILE" > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar -cf - package/ | zstd -19 -T0 -o "${OUT_DIR}${OUT_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
25
scripts/release.sh
Executable file
25
scripts/release.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
. ./scripts/environ.sh
|
||||||
|
|
||||||
|
check_tags
|
||||||
|
if [ -n "$TAG" ]; then
|
||||||
|
echo "Found tag $TAG"
|
||||||
|
RELEASE_VERSION=$(echo "$TAG" | sed 's/v//')
|
||||||
|
echo "Releasing $RELEASE_VERSION"
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
package
|
||||||
|
|
||||||
|
if [ ! -f package.tar.zst ]; then
|
||||||
|
echo "failed to generate package"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl -s -X PUT \
|
||||||
|
-H "Authorization: token $GITEA_TOKEN" \
|
||||||
|
--upload-file "$OUT_DIR$OUT_FILE" \
|
||||||
|
"https://git.molloy.xyz/api/packages/fergus-molloy/generic/nuchat/$RELEASE_VERSION/nuchat.tar.zst"
|
||||||
Reference in New Issue
Block a user