feat: Smart model management #68
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Jan Web Server build image and push to Harbor Registry | |
on: | |
push: | |
branches: | |
- dev | |
paths: | |
- '.github/workflows/jan-server-web-ci.yml' | |
- 'core/**' | |
- 'web-app/**' | |
- 'extensions-web/**' | |
- 'Makefile' | |
- 'package.json' | |
- 'Dockerfile' | |
pull_request: | |
branches: | |
- dev | |
paths: | |
- '.github/workflows/jan-server-web-ci.yml' | |
- 'core/**' | |
- 'web-app/**' | |
- 'extensions-web/**' | |
- 'Makefile' | |
- 'package.json' | |
- 'Dockerfile' | |
jobs: | |
build-and-preview: | |
runs-on: [ubuntu-24-04-docker] | |
permissions: | |
pull-requests: write | |
contents: write | |
steps: | |
- name: Checkout source repo | |
uses: actions/checkout@v4 | |
- name: Login to Harbor Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: registry.menlo.ai | |
username: ${{ secrets.HARBOR_USERNAME }} | |
password: ${{ secrets.HARBOR_PASSWORD }} | |
- name: Install dependencies | |
run: | | |
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \ | |
&& sudo mkdir -p -m 755 /etc/apt/keyrings \ | |
&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \ | |
&& cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ | |
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ | |
&& sudo mkdir -p -m 755 /etc/apt/sources.list.d \ | |
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ | |
&& sudo apt update | |
sudo apt-get install -y jq gettext | |
- name: Set image tag and service name | |
id: vars | |
run: | | |
SERVICE_NAME=jan-server-web | |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then | |
IMAGE_TAG="web:preview-${{ github.sha }}" | |
else | |
IMAGE_TAG="web:dev-${{ github.sha }}" | |
fi | |
echo "SERVICE_NAME=${SERVICE_NAME}" >> $GITHUB_OUTPUT | |
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_OUTPUT | |
echo "FULL_IMAGE=registry.menlo.ai/jan-server/${IMAGE_TAG}" >> $GITHUB_OUTPUT | |
- name: Build docker image | |
run: | | |
docker build -t ${{ steps.vars.outputs.FULL_IMAGE }} . | |
- name: Push docker image | |
run: | | |
docker push ${{ steps.vars.outputs.FULL_IMAGE }} | |
- name: Checkout preview URL repo | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v4 | |
with: | |
repository: menloresearch/infra-domains | |
token: ${{ secrets.PAT_SERVICE_ACCOUNT }} | |
path: preview-repo | |
- name: Generate preview manifest | |
if: github.event_name == 'pull_request' | |
run: | | |
cd preview-repo/kubernetes | |
bash template/generate.sh \ | |
template/preview-url-template.yaml \ | |
preview-url/pr-${{ github.sha }}-${{ steps.vars.outputs.SERVICE_NAME }}.yaml \ | |
${{ github.sha }} \ | |
${{ steps.vars.outputs.SERVICE_NAME }} \ | |
${{ steps.vars.outputs.FULL_IMAGE }} \ | |
80 | |
- name: Commit and push preview manifest | |
if: github.event_name == 'pull_request' | |
run: | | |
cd preview-repo | |
git config user.name "preview-bot" | |
git config user.email "[email protected]" | |
git add kubernetes/preview-url/pr-${{ github.sha }}-${{ steps.vars.outputs.SERVICE_NAME }}.yaml | |
git commit -m "feat(preview): add pr-${{ github.sha }}-${{ steps.vars.outputs.SERVICE_NAME }}.yaml" | |
git push origin main | |
sleep 180 | |
- name: Comment preview URL on PR | |
if: github.event_name == 'pull_request' | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
uses: mshick/add-pr-comment@v2 | |
with: | |
message: | | |
Preview URL: https://pr-${{ github.sha }}-${{ steps.vars.outputs.SERVICE_NAME }}.menlo.ai |