name: CI — Test & Build on: push: branches: [main, develop] pull_request: branches: [main] jobs: test-and-build: name: Test & Build runs-on: ubuntu-latest container: image: node:22-bookworm steps: - name: Install system deps run: apt-get update -qq && apt-get install -y zip curl git ca-certificates -qq - name: Checkout run: | git config --global http.sslVerify false git config --global --add safe.directory /workspace/kibin/LexAI git fetch origin git reset --hard ${{ gitea.sha }} - name: Install dependencies run: npm ci - name: Type check run: npm run typecheck - name: Run unit tests run: npm test -- --run - name: Build extension run: npm run build - name: Verify build output run: | echo "✅ Build contents:" ls -la .output/chrome-mv3/ - name: Package as ZIP run: | SHA=$(echo "${{ gitea.sha }}" | cut -c1-7) VERSION=$(node -p "require('./package.json').version")-${SHA} zip -r lexai-chrome-mv3-${VERSION}.zip .output/chrome-mv3/ echo "PACKAGE_VERSION=${VERSION}" >> $GITHUB_ENV echo "✅ Packaged: lexai-chrome-mv3-${VERSION}.zip" - name: Publish to Gitea Package Registry run: | curl -f -s -X PUT \ "https://git.juankibin.space/api/packages/kibin/generic/lexai-extension/${PACKAGE_VERSION}/lexai-chrome-mv3-${PACKAGE_VERSION}.zip" \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ -T "lexai-chrome-mv3-${PACKAGE_VERSION}.zip" echo "✅ Published to: https://git.juankibin.space/kibin/-/packages" env: PACKAGE_VERSION: ${{ env.PACKAGE_VERSION }}