ci: full CI/CD pipeline via Gitea Actions
Some checks failed
CI/CD / lint (push) Failing after 23s
CI/CD / typecheck (push) Failing after 23s
CI/CD / test (push) Failing after 22s
CI/CD / build (push) Has been skipped
CI/CD / docker (push) Has been skipped
CI/CD / publish-rpm (push) Has been skipped
CI/CD / deploy (push) Has been skipped

Replaces the minimal CI workflow with a complete build/release pipeline:
- lint, typecheck, test (parallel, every push/PR)
- build: TS + completions + bun binaries + RPM packaging
- docker: build & push all 4 images (mcpd, node-runner, python-runner, docmost-mcp)
- publish-rpm: upload RPM to Gitea packages
- deploy: update Portainer stack

Also adds scripts/link-package.sh shared helper to auto-link packages
to the repository (Gitea 1.24+ API with graceful fallback), called from
all build/publish scripts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Michal
2026-03-08 22:02:07 +00:00
parent d853e30d58
commit 4b3158408e
6 changed files with 241 additions and 46 deletions

View File

@@ -51,20 +51,9 @@ curl --fail -s -X PUT \
echo ""
echo "==> Published successfully!"
# Verify the package is linked to the repo (Gitea stores the link at package level)
REPO_LINK=$(curl -s -H "Authorization: token ${GITEA_TOKEN}" \
"${GITEA_URL}/api/v1/packages/${GITEA_OWNER}/rpm/mcpctl/${RPM_VERSION}" \
| python3 -c "import json,sys; d=json.load(sys.stdin); r=d.get('repository'); print(r.get('full_name') if r else '')" 2>/dev/null)
if [ -n "$REPO_LINK" ]; then
echo "==> Linked to repo: ${REPO_LINK}"
else
echo ""
echo "WARNING: Package is not linked to a repository."
echo "Link it manually in the Gitea UI:"
echo " ${GITEA_URL}/${GITEA_OWNER}/-/packages/rpm/mcpctl/${RPM_VERSION}/settings"
echo " → Link to repository: ${GITEA_OWNER}/${GITEA_REPO}"
fi
# Ensure package is linked to the repository
source "$SCRIPT_DIR/link-package.sh"
link_package "rpm" "mcpctl"
echo ""
echo "Install with:"