Skip to content

Commit a66afba

Browse files
committed
chore: add dev environment
1 parent 1183277 commit a66afba

7 files changed

Lines changed: 172 additions & 8 deletions

File tree

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: build backend for dev
2+
on:
3+
push:
4+
branches:
5+
- development
6+
7+
jobs:
8+
build-backend-and-push:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
12+
packages: write
13+
outputs:
14+
IMAGE_TAG: ${{ steps.output.outputs.IMAGE_TAG }}
15+
PAPERDEBUGGER_IMAGE: ${{ steps.output.outputs.PAPERDEBUGGER_IMAGE }}
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v4
19+
with:
20+
ref: development
21+
- name: Setup env
22+
run: |
23+
echo "MONOREPO_REVISION=$(git rev-parse HEAD | cut -c1-6)" >> $GITHUB_ENV
24+
echo "BRANCH_NAME=development" >> $GITHUB_ENV
25+
echo "VERSION=development" >> $GITHUB_ENV
26+
- name: Log in to the container registry
27+
uses: docker/login-action@v3
28+
with:
29+
registry: ghcr.io
30+
username: ${{ github.actor }}
31+
password: ${{ secrets.GITHUB_TOKEN }}
32+
- name: Build and push docker image
33+
run: |
34+
make all
35+
- id: output
36+
name: Output image tag
37+
run: |
38+
export IMAGE_TAG=${BRANCH_NAME}-${MONOREPO_REVISION}
39+
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_OUTPUT
40+
echo "PAPERDEBUGGER_IMAGE=ghcr.io/paperdebugger/sharelatex-paperdebugger:${IMAGE_TAG}" >> $GITHUB_OUTPUT
41+
42+
deploy-backend:
43+
needs: build-backend-and-push
44+
runs-on: ubuntu-latest
45+
permissions:
46+
contents: write
47+
steps:
48+
- name: Checkout repository
49+
uses: actions/checkout@v4
50+
with:
51+
ref: development
52+
- name: Clone deploy repo
53+
run: |
54+
git clone https://${{ secrets.GH_PAT }}@github.com/paperdebugger/deploy.git ../deploy
55+
- name: Generate kubernetes manifests
56+
env:
57+
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL_DEV }}
58+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY_DEV }}
59+
INFERENCE_BASE_URL: ${{ secrets.INFERENCE_BASE_URL_DEV }}
60+
INFERENCE_API_KEY: ${{ secrets.INFERENCE_API_KEY_DEV }}
61+
MCP_BASIC_KEY: ${{ secrets.MCP_BASIC_KEY_DEV }}
62+
MCP_PAPERSCORE_KEY: ${{ secrets.MCP_PAPERSCORE_KEY_DEV }}
63+
XTRAMCP_OPENAI_BASE_URL: ${{ secrets.XTRAMCP_OPENAI_BASE_URL_DEV }}
64+
XTRAMCP_OPENAI_API_KEY: ${{ secrets.XTRAMCP_OPENAI_API_KEY_DEV }}
65+
XTRAMCP_OPENREVIEW_BASE_URL: ${{ secrets.XTRAMCP_OPENREVIEW_BASE_URL_DEV }}
66+
XTRAMCP_OPENREVIEW_USERNAME: ${{ secrets.XTRAMCP_OPENREVIEW_USERNAME_DEV }}
67+
XTRAMCP_OPENREVIEW_PASSWORD: ${{ secrets.XTRAMCP_OPENREVIEW_PASSWORD_DEV }}
68+
XTRAMCP_CROSSREF_EMAIL_ADDRESS: ${{ secrets.XTRAMCP_CROSSREF_EMAIL_ADDRESS_DEV }}
69+
XTRAMCP_DOI_EMAIL_ADDRESS: ${{ secrets.XTRAMCP_DOI_EMAIL_ADDRESS_DEV }}
70+
XTRAMCP_ARXIV_METADATA_DB_URL: ${{ secrets.XTRAMCP_ARXIV_METADATA_DB_URL_DEV }}
71+
XTRAMCP_MONGO_URI: ${{ secrets.XTRAMCP_MONGO_URI_DEV }}
72+
MONGO_URI: ${{ secrets.MONGO_URI_DEV }}
73+
GHCR_DOCKER_CONFIG: ${{ secrets.GHCR_DOCKER_CONFIG_DEV }}
74+
CLOUDFLARE_TUNNEL_TOKEN: ${{ secrets.CLOUDFLARE_TUNNEL_TOKEN_DEV }}
75+
run: |
76+
export PAPERDEBUGGER_IMAGE=${{ needs.build-backend-and-push.outputs.PAPERDEBUGGER_IMAGE }}
77+
mkdir -p ../deploy/dev
78+
./hack/dev.sh > ../deploy/dev/paperdebugger.yaml
79+
- name: Push changes to deploy repo
80+
run: |
81+
export IMAGE_TAG=${{ needs.build-backend-and-push.outputs.IMAGE_TAG }}
82+
cd ../deploy
83+
git config --global user.name "github-actions[bot]"
84+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
85+
git add dev/paperdebugger.yaml
86+
git diff --staged --quiet || git commit -m "chore: update paperdebugger dev, revision ${IMAGE_TAG}"
87+
git push

.github/workflows/build-backend-prd.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ jobs:
1818
steps:
1919
- name: Checkout repository
2020
uses: actions/checkout@v4
21+
with:
22+
ref: main
2123
- name: Setup env
2224
run: |
2325
echo "MONOREPO_REVISION=$(git rev-parse HEAD | cut -c1-6)" >> $GITHUB_ENV
@@ -47,6 +49,8 @@ jobs:
4749
steps:
4850
- name: Checkout repository
4951
uses: actions/checkout@v4
52+
with:
53+
ref: main
5054
- name: Clone deploy repo
5155
run: |
5256
git clone https://${{ secrets.GH_PAT }}@github.com/paperdebugger/deploy.git ../deploy

.github/workflows/build-backend-stg.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
- name: Checkout repository
2020
uses: actions/checkout@v4
2121
with:
22-
ref: develop
22+
ref: staging
2323
- name: Setup env
2424
run: |
2525
echo "MONOREPO_REVISION=$(git rev-parse HEAD | cut -c1-6)" >> $GITHUB_ENV
@@ -50,7 +50,7 @@ jobs:
5050
- name: Checkout repository
5151
uses: actions/checkout@v4
5252
with:
53-
ref: develop
53+
ref: staging
5454
- name: Clone deploy repo
5555
run: |
5656
git clone https://${{ secrets.GH_PAT }}@github.com/paperdebugger/deploy.git ../deploy
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: build chrome extension for dev (unsupported)
2+
3+
on:
4+
repository_dispatch:
5+
types: [dev]
6+
7+
jobs:
8+
build-chrome-extension:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: 🚫 Dev extension build/release is not supported
12+
run: |
13+
echo "::notice::Dev environment is not supported for Chrome extension build/release."
14+
cat <<'EOF'
15+
Development environment is not supported to build a Chrome extension and push to the Chrome Web Store.
16+
17+
The reason is that we only have two versions of the third-party extension:
18+
1. Production
19+
2. Staging
20+
21+
If you want to release your new Chrome extension, please use the staging environment.
22+
EOF

.github/workflows/build-ext-stg.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
- name: Checkout code
1212
uses: actions/checkout@v4
1313
with:
14-
ref: develop
14+
ref: staging
1515
fetch-depth: 0 # 获取完整历史
1616

1717
- name: Setup node

.github/workflows/bump-version.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ on:
44
push:
55
branches:
66
- main
7-
- develop
7+
- staging
8+
# - development # No need to bump version for development branch because we don't build the extension for development branch
89

910
jobs:
1011
bump-version:
@@ -36,8 +37,8 @@ jobs:
3637
# Parse version parts
3738
IFS='.' read -r -a parts <<< "$version"
3839
39-
if [ "$branch" = "develop" ]; then
40-
# Develop branch: bump patch version (last value)
40+
if [ "$branch" = "staging" ]; then
41+
# Staging branch: bump patch version (last value)
4142
# v2.1.2 --> v2.1.3
4243
last_index=$((${#parts[@]} - 1))
4344
parts[$last_index]=$((parts[$last_index] + 1))
@@ -80,8 +81,8 @@ jobs:
8081
event-type: prd
8182
client-payload: '{"tag": "${{ steps.bump.outputs.new_tag }}", "branch": "${{ github.ref_name }}"}'
8283

83-
- name: Repository Dispatch (develop -> stg)
84-
if: github.ref_name == 'develop'
84+
- name: Repository Dispatch (staging -> stg)
85+
if: github.ref_name == 'staging'
8586
uses: peter-evans/repository-dispatch@v4
8687
with:
8788
token: ${{ secrets.GH_PAT }}

hack/dev.sh

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/bin/bash
2+
3+
set -euxo pipefail
4+
5+
ROOT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." &>/dev/null && pwd)
6+
cd $ROOT_DIR
7+
8+
OPENAI_BASE_URL=${OPENAI_BASE_URL:-https://api.openai.com/v1}
9+
OPENAI_API_KEY=${OPENAI_API_KEY:-sk-dummy-OPENAI_API_KEY}
10+
INFERENCE_BASE_URL=${INFERENCE_BASE_URL:-https://inference.paperdebugger.workers.dev}
11+
INFERENCE_API_KEY=${INFERENCE_API_KEY:-sk-dummy-OPEN-ROUTER}
12+
MCP_BASIC_KEY=${MCP_BASIC_KEY:-sk-dummy-MCP_BASIC_KEY}
13+
MCP_PAPERSCORE_KEY=${MCP_PAPERSCORE_KEY:-sk-dummy-MCP_PAPERSCORE_KEY}
14+
XTRAMCP_OPENAI_BASE_URL=${XTRAMCP_OPENAI_BASE_URL:-https://api.openai.com/v1}
15+
XTRAMCP_OPENAI_API_KEY=${XTRAMCP_OPENAI_API_KEY:-sk-dummy-XTRAMCP_OPENAI_API_KEY}
16+
XTRAMCP_OPENREVIEW_BASE_URL=${XTRAMCP_OPENREVIEW_BASE_URL:-https://api2.openreview.net}
17+
XTRAMCP_OPENREVIEW_USERNAME=${XTRAMCP_OPENREVIEW_USERNAME:-dummy-XTRAMCP_OPENREVIEW_USERNAME}
18+
XTRAMCP_OPENREVIEW_PASSWORD=${XTRAMCP_OPENREVIEW_PASSWORD:-dummy-XTRAMCP_OPENREVIEW_PASSWORD}
19+
XTRAMCP_CROSSREF_EMAIL_ADDRESS=${XTRAMCP_CROSSREF_EMAIL_ADDRESS:-dummy-crossref-email-address}
20+
XTRAMCP_DOI_EMAIL_ADDRESS=${XTRAMCP_DOI_EMAIL_ADDRESS:-dummy-doi-email-address}
21+
XTRAMCP_ARXIV_METADATA_DB_URL=${XTRAMCP_ARXIV_METADATA_DB_URL:-postgresql://dummy-arxiv-metadata-db-url}
22+
XTRAMCP_MONGO_URI=${XTRAMCP_MONGO_URI:-mongodb://dummy-mongo-uri}
23+
PAPERDEBUGGER_IMAGE=${PAPERDEBUGGER_IMAGE:-ghcr.io/paperdebugger/sharelatex-paperdebugger:latest}
24+
MONGO_URI=${MONGO_URI:-}
25+
GHCR_DOCKER_CONFIG=${GHCR_DOCKER_CONFIG:-dummy-ghcr-docker-config}
26+
CLOUDFLARE_TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN:-dummy-cloudflare-tunnel-token}
27+
28+
helm template $ROOT_DIR/helm-chart \
29+
--create-namespace \
30+
--values $ROOT_DIR/helm-chart/values.yaml \
31+
--values $ROOT_DIR/hack/values-dev.yaml \
32+
--set-string openai_base_url=$OPENAI_BASE_URL \
33+
--set-string openai_api_key=$OPENAI_API_KEY \
34+
--set-string inference_base_url=$INFERENCE_BASE_URL \
35+
--set-string inference_api_key=$INFERENCE_API_KEY \
36+
--set-string mcp_basic_key=$MCP_BASIC_KEY \
37+
--set-string mcp_paperscore_key=$MCP_PAPERSCORE_KEY \
38+
--set-string xtramcp_openai_base_url=$XTRAMCP_OPENAI_BASE_URL \
39+
--set-string xtramcp_openai_api_key=$XTRAMCP_OPENAI_API_KEY \
40+
--set-string xtramcp_openreview_base_url=$XTRAMCP_OPENREVIEW_BASE_URL \
41+
--set-string xtramcp_openreview_username=$XTRAMCP_OPENREVIEW_USERNAME \
42+
--set-string xtramcp_openreview_password=$XTRAMCP_OPENREVIEW_PASSWORD \
43+
--set-string xtramcp_crossref_email_address=$XTRAMCP_CROSSREF_EMAIL_ADDRESS \
44+
--set-string xtramcp_doi_email_address=$XTRAMCP_DOI_EMAIL_ADDRESS \
45+
--set-string xtramcp_arxiv_metadata_db_url=$XTRAMCP_ARXIV_METADATA_DB_URL \
46+
--set-string xtramcp_mongo_uri=$XTRAMCP_MONGO_URI \
47+
--set-string paperdebugger.image=$PAPERDEBUGGER_IMAGE \
48+
--set-string mongo.uri=$MONGO_URI \
49+
--set-string ghcr_docker_config=$GHCR_DOCKER_CONFIG \
50+
--set-string cloudflare_tunnel_token=$CLOUDFLARE_TUNNEL_TOKEN

0 commit comments

Comments
 (0)