From 8bd91ab0024621d5ad37a9e5b8be120f3de20874 Mon Sep 17 00:00:00 2001 From: Timothy Cardoza Date: Mon, 16 Mar 2026 16:40:51 -0500 Subject: [PATCH] Added CI --- .gitea/workflows/ci.yaml | 76 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .gitea/workflows/ci.yaml diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml new file mode 100644 index 0000000..971f0db --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,76 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +env: + DEPLOY_HOST: "10.10.1.82" + DEPLOY_PATH: "/var/www/item-extractor-solid" + +jobs: + build: + runs-on: ubuntu-latest + if: github.event_name == 'pull_request' + container: + image: oven/bun:1 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Build + run: bun run build + + deploy: + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') + container: + image: node:20-bookworm + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install curl and ca-certificates + run: apt-get update -qq && apt-get install -y curl ca-certificates + + - name: Install Bun + run: | + curl -fsSL https://bun.sh/install | bash + echo "$HOME/.bun/bin" >> $GITHUB_PATH + echo "PATH=$HOME/.bun/bin:$PATH" >> $GITHUB_ENV + + - name: Install deploy tools + run: apt-get update -qq && apt-get install -y rsync openssh-client sshpass + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Build + run: bun run build + + - name: Prepare deploy artifact + run: | + ls -la + test -d dist || (echo "Missing dist/ (Vite output). Check Build step." && exit 1) + mkdir -p deploy + cp -r dist deploy/ + + - name: Setup SSH known hosts + run: | + mkdir -p ~/.ssh + ssh-keyscan -p ${{ secrets.DEPLOY_SSH_PORT || '22' }} -H ${{ secrets.DEPLOY_HOST || env.DEPLOY_HOST }} >> ~/.ssh/known_hosts 2>/dev/null || true + + - name: Deploy via rsync + env: + SSH_PASSWORD: ${{ secrets.DEPLOY_PASSWORD }} + run: | + sshpass -p "$SSH_PASSWORD" rsync -avz --delete \ + -e "ssh -o StrictHostKeyChecking=accept-new -p ${{ secrets.DEPLOY_SSH_PORT || '22' }}" \ + deploy/dist/ \ + ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST || env.DEPLOY_HOST }}:${{ secrets.DEPLOY_PATH || env.DEPLOY_PATH }}/ \ No newline at end of file