Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
37218d9
refactor: update styles and prompt selection logic (#103)
Junyi-99 Jan 26, 2026
d9dbc20
feat: initialize projectInstructions variable in conversation prepara…
Junyi-99 Jan 26, 2026
894532a
refactor: update MessageId handling to remove prefix (#105)
Junyi-99 Jan 26, 2026
be7b8c8
add byok modal, update user proto and model
kah-seng Jan 27, 2026
50a5f0b
feat: gpt-5.2, refactored streaming, improved md rendering, basic too…
Junyi-99 Jan 28, 2026
783f85e
Merge branch 'main' of https://github.com/PaperDebugger/paperdebugger…
kah-seng Jan 28, 2026
9603404
update CustomModel proto, model and mapper
kah-seng Jan 28, 2026
49ac78d
add button functions
kah-seng Jan 29, 2026
3ffbb5e
Update xtramcp tag
4ndrelim Jan 29, 2026
5ea58f1
fix: update openaiApiKey handling to refresh model list and cache (#107)
Junyi-99 Jan 29, 2026
d83983b
Merge branch 'staging' of https://github.com/PaperDebugger/paperdebug…
Junyi-99 Jan 29, 2026
74f44d5
refactor: remove gradient handling logic from GeneralToolCard component
Junyi-99 Jan 29, 2026
262f6b7
feat: implement dark mode support and theme synchronization across co…
Junyi-99 Jan 29, 2026
38d7d56
change CustomModel in user.proto to match SupportedModel in chat.proto
kah-seng Jan 30, 2026
3cb6692
allow custom model to be selected in chat
kah-seng Jan 30, 2026
83efbac
Merge branch 'main' into feat/byok
kah-seng Jan 30, 2026
49dd47f
fix: text patch on multi-message
Junyi-99 Jan 31, 2026
07321c9
fix: css
Junyi-99 Jan 31, 2026
3318812
fix: style
Junyi-99 Jan 31, 2026
c2d221e
fix: style
Junyi-99 Jan 31, 2026
b055a17
add: link to report bugs
Junyi-99 Jan 31, 2026
f4e4634
chore: format & lint
Junyi-99 Jan 31, 2026
e0d5808
docs: update qr code
Junyi-99 Jan 31, 2026
9259e76
Merge branch 'main' into feat/byok
kah-seng Feb 3, 2026
6333acc
add select input, update model selection
kah-seng Feb 3, 2026
f693cf4
Merge branch 'main' into feat/byok
kah-seng Feb 14, 2026
adf8216
todo: fix gemini bad request
kah-seng Feb 15, 2026
6ef12a3
feat: tab completion for citation keys (#110)
wjiayis Feb 17, 2026
dab4e6f
chore: update helm for xtramcp (#119)
wjiayis Feb 17, 2026
ea701a5
chore: merge branch 'main' into staging (#122)
wjiayis Feb 17, 2026
6fcdbee
refactor: improve state management and accessibility in components
Junyi-99 Feb 18, 2026
ee2cb93
refactor: improve state management and accessibility in components (#…
Junyi-99 Feb 18, 2026
f19e901
Merge branch 'staging' of https://github.com/PaperDebugger/paperdebug…
Junyi-99 Feb 18, 2026
19269cc
refactor: enhance accessibility and code consistency across components
Junyi-99 Feb 18, 2026
375c342
refactor: update styles and prompt selection logic (#103) (#124)
Junyi-99 Feb 18, 2026
44dd174
Merge branch 'staging' of https://github.com/PaperDebugger/paperdebug…
Junyi-99 Feb 18, 2026
2e593f7
Merge remote-tracking branch 'origin/main' into staging
Junyi-99 Feb 18, 2026
ebbfb44
fix gemini chat params
kah-seng Feb 19, 2026
a7b7ff7
Update llmProvider
kah-seng Feb 21, 2026
110bcaf
Polish UI
kah-seng Feb 21, 2026
58e9aac
Fix defaults
kah-seng Feb 21, 2026
bee8db5
feat: user cost (#126)
wjiayis Mar 11, 2026
f807eaf
Change slug to text input, hide disabled models
kah-seng Mar 18, 2026
035e6da
Allow multiple models with same slugs
kah-seng Mar 18, 2026
c9b078a
Trim inputs, polish UI
kah-seng Mar 19, 2026
6981907
UI polish, do not send disabled models
kah-seng Mar 19, 2026
b6975ef
Merge branch 'staging' into feat/byok
kah-seng Mar 19, 2026
6031234
Make gen
kah-seng Mar 19, 2026
8bf9095
Update UI
kah-seng Mar 19, 2026
167416b
Add input validation error indicator
kah-seng Mar 20, 2026
d107f62
Remove sorting of models by name
kah-seng Mar 20, 2026
6242602
Add optional fields
kah-seng Mar 20, 2026
18a5557
Revert package-lock.json
kah-seng Mar 20, 2026
dc587af
Add baseUrl https validation
kah-seng Mar 20, 2026
adb9032
fix: revert last change staging (#135)
wjiayis Mar 22, 2026
bfeac21
Merge branch 'staging' into feat/byok
kah-seng Mar 26, 2026
8c11e21
make gen
kah-seng Mar 26, 2026
0022664
Resolve Copilot comments
kah-seng Mar 26, 2026
54514a8
Merge pull request #129 from PaperDebugger/feat/byok
kah-seng Mar 26, 2026
2057e72
chore: merge main into staging: add nodeSelector support (#137)
Junyi-99 Mar 28, 2026
041d463
refactor: deduplicate CI workflows and fix double triggers (#138)
Junyi-99 Mar 28, 2026
95163e8
chore: enable in-cluster mongodb for dev and stg (#139)
Junyi-99 Mar 28, 2026
572b57d
docs: add contributing instructions (#127) (#142)
Junyi-99 Mar 28, 2026
89a066b
fix: set PD_MONGO_URI for in-cluster mongo and enable in_cluster (#145)
Junyi-99 Mar 28, 2026
56cbe48
fix: add permissions to backend caller workflows (#146)
Junyi-99 Mar 28, 2026
acf9653
Add customModels to setting-store.ts
kah-seng Apr 6, 2026
3f6871c
Select models by ID instead of slug
kah-seng Apr 6, 2026
0f9dd22
Add loading spinner
kah-seng Apr 6, 2026
2ff12f9
Fix Copilot comments
kah-seng Apr 6, 2026
56d815e
fix: BYOK (#150)
kah-seng Apr 6, 2026
6508989
Show error when same slug and name
kah-seng Apr 7, 2026
7eca4d7
Add tooltips
kah-seng Apr 8, 2026
23ea667
Add temp, parallel tools, store fields
kah-seng Apr 8, 2026
4cad7c9
Add tooltips
kah-seng Apr 9, 2026
04eb9fe
Allow user to configure temp, parallel tools, store params
kah-seng Apr 10, 2026
2a0bd5f
Add tooltips
kah-seng Apr 10, 2026
4774fbe
Merge branch 'staging' into feat/byok
kah-seng Apr 10, 2026
549b5fb
Fix Copilot comments
kah-seng Apr 10, 2026
dcae304
Merge pull request #153 from PaperDebugger/feat/byok
kah-seng Apr 12, 2026
99c52e6
feat: track OpenRouter usage (#134)
wjiayis Apr 14, 2026
325f86b
feat: proj cost track (#156)
wjiayis Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/_build-backend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Build and deploy backend

on:
workflow_call:
inputs:
environment:
required: true
type: string # dev, stg, prd
ref:
required: true
type: string # development, staging, main
version_tag:
required: true
type: string # e.g. "development" or "v2.1.3"

jobs:
build-backend-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
outputs:
IMAGE_TAG: ${{ steps.output.outputs.IMAGE_TAG }}
PAPERDEBUGGER_IMAGE: ${{ steps.output.outputs.PAPERDEBUGGER_IMAGE }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
- name: Setup env
run: |
echo "MONOREPO_REVISION=$(git rev-parse HEAD | cut -c1-6)" >> $GITHUB_ENV
echo "BRANCH_NAME=${{ inputs.version_tag }}" >> $GITHUB_ENV
echo "VERSION=${{ inputs.version_tag }}" >> $GITHUB_ENV
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push docker image
run: |
make all
- id: output
name: Output image tag
run: |
export IMAGE_TAG=${BRANCH_NAME}-${MONOREPO_REVISION}
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_OUTPUT
echo "PAPERDEBUGGER_IMAGE=ghcr.io/paperdebugger/sharelatex-paperdebugger:${IMAGE_TAG}" >> $GITHUB_OUTPUT

deploy-backend:
needs: build-backend-and-push
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
- name: Clone deploy repo
run: |
git clone https://${{ secrets.GH_PAT }}@github.com/paperdebugger/deploy.git ../deploy
- name: Generate kubernetes manifests
env:
OPENAI_BASE_URL: ${{ inputs.environment == 'dev' && secrets.OPENAI_BASE_URL_DEV || inputs.environment == 'stg' && secrets.OPENAI_BASE_URL_STG || secrets.OPENAI_BASE_URL_PRD }}
OPENAI_API_KEY: ${{ inputs.environment == 'dev' && secrets.OPENAI_API_KEY_DEV || inputs.environment == 'stg' && secrets.OPENAI_API_KEY_STG || secrets.OPENAI_API_KEY_PRD }}
INFERENCE_BASE_URL: ${{ inputs.environment == 'dev' && secrets.INFERENCE_BASE_URL_DEV || inputs.environment == 'stg' && secrets.INFERENCE_BASE_URL_STG || secrets.INFERENCE_BASE_URL_PRD }}
INFERENCE_API_KEY: ${{ inputs.environment == 'dev' && secrets.INFERENCE_API_KEY_DEV || inputs.environment == 'stg' && secrets.INFERENCE_API_KEY_STG || secrets.INFERENCE_API_KEY_PRD }}
MCP_BASIC_KEY: ${{ inputs.environment == 'dev' && secrets.MCP_BASIC_KEY_DEV || inputs.environment == 'stg' && secrets.MCP_BASIC_KEY_STG || secrets.MCP_BASIC_KEY_PRD }}
MCP_PAPERSCORE_KEY: ${{ inputs.environment == 'dev' && secrets.MCP_PAPERSCORE_KEY_DEV || inputs.environment == 'stg' && secrets.MCP_PAPERSCORE_KEY_STG || secrets.MCP_PAPERSCORE_KEY_PRD }}
XTRAMCP_OPENAI_BASE_URL: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_OPENAI_BASE_URL_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_OPENAI_BASE_URL_STG || secrets.XTRAMCP_OPENAI_BASE_URL_PRD }}
XTRAMCP_OPENAI_API_KEY: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_OPENAI_API_KEY_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_OPENAI_API_KEY_STG || secrets.XTRAMCP_OPENAI_API_KEY_PRD }}
XTRAMCP_OPENREVIEW_BASE_URL: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_OPENREVIEW_BASE_URL_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_OPENREVIEW_BASE_URL_STG || secrets.XTRAMCP_OPENREVIEW_BASE_URL_PRD }}
XTRAMCP_OPENREVIEW_USERNAME: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_OPENREVIEW_USERNAME_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_OPENREVIEW_USERNAME_STG || secrets.XTRAMCP_OPENREVIEW_USERNAME_PRD }}
XTRAMCP_OPENREVIEW_PASSWORD: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_OPENREVIEW_PASSWORD_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_OPENREVIEW_PASSWORD_STG || secrets.XTRAMCP_OPENREVIEW_PASSWORD_PRD }}
XTRAMCP_CROSSREF_EMAIL_ADDRESS: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_CROSSREF_EMAIL_ADDRESS_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_CROSSREF_EMAIL_ADDRESS_STG || secrets.XTRAMCP_CROSSREF_EMAIL_ADDRESS_PRD }}
XTRAMCP_DOI_EMAIL_ADDRESS: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_DOI_EMAIL_ADDRESS_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_DOI_EMAIL_ADDRESS_STG || secrets.XTRAMCP_DOI_EMAIL_ADDRESS_PRD }}
XTRAMCP_ACL_METADATA_DB_URL: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_ACL_METADATA_DB_URL_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_ACL_METADATA_DB_URL_STG || secrets.XTRAMCP_ACL_METADATA_DB_URL_PRD }}
XTRAMCP_ARXIV_METADATA_DB_URL: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_ARXIV_METADATA_DB_URL_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_ARXIV_METADATA_DB_URL_STG || secrets.XTRAMCP_ARXIV_METADATA_DB_URL_PRD }}
XTRAMCP_MONGO_URI: ${{ inputs.environment == 'dev' && secrets.XTRAMCP_MONGO_URI_DEV || inputs.environment == 'stg' && secrets.XTRAMCP_MONGO_URI_STG || secrets.XTRAMCP_MONGO_URI_PRD }}
MONGO_URI: ${{ inputs.environment == 'dev' && secrets.MONGO_URI_DEV || inputs.environment == 'stg' && secrets.MONGO_URI_STG || secrets.MONGO_URI_PRD }}
GHCR_DOCKER_CONFIG: ${{ inputs.environment == 'dev' && secrets.GHCR_DOCKER_CONFIG_DEV || inputs.environment == 'stg' && secrets.GHCR_DOCKER_CONFIG_STG || secrets.GHCR_DOCKER_CONFIG_PRD }}
CLOUDFLARE_TUNNEL_TOKEN: ${{ inputs.environment == 'dev' && secrets.CLOUDFLARE_TUNNEL_TOKEN_DEV || inputs.environment == 'stg' && secrets.CLOUDFLARE_TUNNEL_TOKEN_STG || secrets.CLOUDFLARE_TUNNEL_TOKEN_PRD }}
run: |
export PAPERDEBUGGER_IMAGE=${{ needs.build-backend-and-push.outputs.PAPERDEBUGGER_IMAGE }}
mkdir -p ../deploy/${{ inputs.environment }}
./hack/${{ inputs.environment }}.sh > ../deploy/${{ inputs.environment }}/paperdebugger.yaml
- name: Push changes to deploy repo
run: |
export IMAGE_TAG=${{ needs.build-backend-and-push.outputs.IMAGE_TAG }}
cd ../deploy
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add ${{ inputs.environment }}/paperdebugger.yaml
git diff --staged --quiet || git commit -m "chore: update paperdebugger ${{ inputs.environment }}, revision ${IMAGE_TAG}"
git push
70 changes: 70 additions & 0 deletions .github/workflows/_build-ext.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Build and publish Chrome extension

on:
workflow_call:
inputs:
environment:
required: true
type: string # stg, prd
ref:
required: true
type: string # staging, main
extension_id:
required: true
type: string

jobs:
build-chrome-extension:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
fetch-depth: 0

- name: Setup node
uses: actions/setup-node@v4
with:
node-version: lts/*

- name: Build
run: |
export GRAFANA_API_KEY=${{ secrets.GRAFANA_API_KEY }}
cd webapp/_webapp
npm install
npm run build:${{ inputs.environment }}:chrome

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: paperdebugger-chrome-extension-${{ inputs.environment }}
path: webapp/_webapp/dist

push-to-chrome-web-store:
runs-on: ubuntu-latest
needs: build-chrome-extension
steps:
- name: Install zip
run: |
sudo apt-get update && sudo apt-get install -y zip

- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: paperdebugger-chrome-extension-${{ inputs.environment }}
path: dist

- name: Zip extension files
run: |
zip -r dist.zip dist/*

- name: Upload to Chrome Web Store (upload only)
uses: mobilefirstllc/cws-publish@latest
with:
action: 'upload'
client_id: ${{ secrets.CHROME_EXT_CLIENT_ID }}
client_secret: ${{ secrets.CHROME_EXT_CLIENT_SECRET }}
refresh_token: ${{ secrets.CHROME_EXT_REFRESH_TOKEN }}
extension_id: ${{ inputs.extension_id }}
zip_file: 'dist.zip'
91 changes: 11 additions & 80 deletions .github/workflows/build-backend-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,84 +4,15 @@ on:
branches:
- development

jobs:
build-backend-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
outputs:
IMAGE_TAG: ${{ steps.output.outputs.IMAGE_TAG }}
PAPERDEBUGGER_IMAGE: ${{ steps.output.outputs.PAPERDEBUGGER_IMAGE }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: development
- name: Setup env
run: |
echo "MONOREPO_REVISION=$(git rev-parse HEAD | cut -c1-6)" >> $GITHUB_ENV
echo "BRANCH_NAME=development" >> $GITHUB_ENV
echo "VERSION=development" >> $GITHUB_ENV
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push docker image
run: |
make all
- id: output
name: Output image tag
run: |
export IMAGE_TAG=${BRANCH_NAME}-${MONOREPO_REVISION}
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_OUTPUT
echo "PAPERDEBUGGER_IMAGE=ghcr.io/paperdebugger/sharelatex-paperdebugger:${IMAGE_TAG}" >> $GITHUB_OUTPUT
permissions:
contents: write
packages: write

deploy-backend:
needs: build-backend-and-push
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: development
- name: Clone deploy repo
run: |
git clone https://${{ secrets.GH_PAT }}@github.com/paperdebugger/deploy.git ../deploy
- name: Generate kubernetes manifests
env:
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL_DEV }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY_DEV }}
INFERENCE_BASE_URL: ${{ secrets.INFERENCE_BASE_URL_DEV }}
INFERENCE_API_KEY: ${{ secrets.INFERENCE_API_KEY_DEV }}
MCP_BASIC_KEY: ${{ secrets.MCP_BASIC_KEY_DEV }}
MCP_PAPERSCORE_KEY: ${{ secrets.MCP_PAPERSCORE_KEY_DEV }}
XTRAMCP_OPENAI_BASE_URL: ${{ secrets.XTRAMCP_OPENAI_BASE_URL_DEV }}
XTRAMCP_OPENAI_API_KEY: ${{ secrets.XTRAMCP_OPENAI_API_KEY_DEV }}
XTRAMCP_OPENREVIEW_BASE_URL: ${{ secrets.XTRAMCP_OPENREVIEW_BASE_URL_DEV }}
XTRAMCP_OPENREVIEW_USERNAME: ${{ secrets.XTRAMCP_OPENREVIEW_USERNAME_DEV }}
XTRAMCP_OPENREVIEW_PASSWORD: ${{ secrets.XTRAMCP_OPENREVIEW_PASSWORD_DEV }}
XTRAMCP_CROSSREF_EMAIL_ADDRESS: ${{ secrets.XTRAMCP_CROSSREF_EMAIL_ADDRESS_DEV }}
XTRAMCP_DOI_EMAIL_ADDRESS: ${{ secrets.XTRAMCP_DOI_EMAIL_ADDRESS_DEV }}
XTRAMCP_ARXIV_METADATA_DB_URL: ${{ secrets.XTRAMCP_ARXIV_METADATA_DB_URL_DEV }}
XTRAMCP_MONGO_URI: ${{ secrets.XTRAMCP_MONGO_URI_DEV }}
MONGO_URI: ${{ secrets.MONGO_URI_DEV }}
GHCR_DOCKER_CONFIG: ${{ secrets.GHCR_DOCKER_CONFIG_DEV }}
CLOUDFLARE_TUNNEL_TOKEN: ${{ secrets.CLOUDFLARE_TUNNEL_TOKEN_DEV }}
run: |
export PAPERDEBUGGER_IMAGE=${{ needs.build-backend-and-push.outputs.PAPERDEBUGGER_IMAGE }}
mkdir -p ../deploy/dev
./hack/dev.sh > ../deploy/dev/paperdebugger.yaml
- name: Push changes to deploy repo
run: |
export IMAGE_TAG=${{ needs.build-backend-and-push.outputs.IMAGE_TAG }}
cd ../deploy
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add dev/paperdebugger.yaml
git diff --staged --quiet || git commit -m "chore: update paperdebugger dev, revision ${IMAGE_TAG}"
git push
jobs:
build-and-deploy:
uses: ./.github/workflows/_build-backend.yml
secrets: inherit
with:
environment: dev
ref: development
version_tag: development
95 changes: 11 additions & 84 deletions .github/workflows/build-backend-prd.yml
Original file line number Diff line number Diff line change
@@ -1,90 +1,17 @@
name: build backend for prd
on:
push:
tags:
- 'v*'
repository_dispatch:
types: [prd]

jobs:
build-backend-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
outputs:
IMAGE_TAG: ${{ steps.output.outputs.IMAGE_TAG }}
PAPERDEBUGGER_IMAGE: ${{ steps.output.outputs.PAPERDEBUGGER_IMAGE }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: main
- name: Setup env
run: |
echo "MONOREPO_REVISION=$(git rev-parse HEAD | cut -c1-6)" >> $GITHUB_ENV
echo "BRANCH_NAME=${{ github.event.client_payload.tag }}" >> $GITHUB_ENV
echo "VERSION=${{ github.event.client_payload.tag }}" >> $GITHUB_ENV
- name: Log in to the container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push docker image
run: |
make all
- id: output
name: Output image tag
run: |
export IMAGE_TAG=${BRANCH_NAME}-${MONOREPO_REVISION}
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_OUTPUT
echo "PAPERDEBUGGER_IMAGE=ghcr.io/paperdebugger/sharelatex-paperdebugger:${IMAGE_TAG}" >> $GITHUB_OUTPUT
permissions:
contents: write
packages: write

deploy-backend:
needs: build-backend-and-push
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: main
- name: Clone deploy repo
run: |
git clone https://${{ secrets.GH_PAT }}@github.com/paperdebugger/deploy.git ../deploy
- name: Generate kubernetes manifests
env:
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL_PRD }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY_PRD }}
INFERENCE_BASE_URL: ${{ secrets.INFERENCE_BASE_URL_PRD }}
INFERENCE_API_KEY: ${{ secrets.INFERENCE_API_KEY_PRD }}
MCP_BASIC_KEY: ${{ secrets.MCP_BASIC_KEY_PRD }}
MCP_PAPERSCORE_KEY: ${{ secrets.MCP_PAPERSCORE_KEY_PRD }}
XTRAMCP_OPENAI_BASE_URL: ${{ secrets.XTRAMCP_OPENAI_BASE_URL_PRD }}
XTRAMCP_OPENAI_API_KEY: ${{ secrets.XTRAMCP_OPENAI_API_KEY_PRD }}
XTRAMCP_OPENREVIEW_BASE_URL: ${{ secrets.XTRAMCP_OPENREVIEW_BASE_URL_PRD }}
XTRAMCP_OPENREVIEW_USERNAME: ${{ secrets.XTRAMCP_OPENREVIEW_USERNAME_PRD }}
XTRAMCP_OPENREVIEW_PASSWORD: ${{ secrets.XTRAMCP_OPENREVIEW_PASSWORD_PRD }}
XTRAMCP_CROSSREF_EMAIL_ADDRESS: ${{ secrets.XTRAMCP_CROSSREF_EMAIL_ADDRESS_PRD }}
XTRAMCP_DOI_EMAIL_ADDRESS: ${{ secrets.XTRAMCP_DOI_EMAIL_ADDRESS_PRD }}
XTRAMCP_ACL_METADATA_DB_URL: ${{ secrets.XTRAMCP_ACL_METADATA_DB_URL_PRD }}
XTRAMCP_ARXIV_METADATA_DB_URL: ${{ secrets.XTRAMCP_ARXIV_METADATA_DB_URL_PRD }}
XTRAMCP_MONGO_URI: ${{ secrets.XTRAMCP_MONGO_URI_PRD }}
MONGO_URI: ${{ secrets.MONGO_URI_PRD }}
GHCR_DOCKER_CONFIG: ${{ secrets.GHCR_DOCKER_CONFIG_PRD }}
CLOUDFLARE_TUNNEL_TOKEN: ${{ secrets.CLOUDFLARE_TUNNEL_TOKEN_PRD }}
run: |
export PAPERDEBUGGER_IMAGE=${{ needs.build-backend-and-push.outputs.PAPERDEBUGGER_IMAGE }}
mkdir -p ../deploy/prd
./hack/prd.sh > ../deploy/prd/paperdebugger.yaml
- name: Push changes to deploy repo
run: |
export IMAGE_TAG=${{ needs.build-backend-and-push.outputs.IMAGE_TAG }}
cd ../deploy
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add prd/paperdebugger.yaml
git diff --staged --quiet || git commit -m "chore: update paperdebugger prd, revision ${IMAGE_TAG}"
git push
jobs:
build-and-deploy:
uses: ./.github/workflows/_build-backend.yml
secrets: inherit
with:
environment: prd
ref: main
version_tag: ${{ github.event.client_payload.tag }}
Loading
Loading