mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-27 17:35:07 +01:00
8d1e988059
- Tag docker image with `tag_name' on release (i.e tag push) - Else tag with 'pre' on push to master - Else tag with 'dev' on push to PR branch - Only tag the latest release with release tag Previously the latest commit on master was being tagged with the latest tag. This doesn't sync with the release cadence of the rest of Khoj
60 lines
1.7 KiB
YAML
60 lines
1.7 KiB
YAML
name: dockerize production
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- src/khoj/**
|
|
- pyproject.toml
|
|
- prod.Dockerfile
|
|
- .github/workflows/dockerize_production.yml
|
|
push:
|
|
tags:
|
|
- "*"
|
|
branches:
|
|
- master
|
|
paths:
|
|
- src/khoj/**
|
|
- pyproject.toml
|
|
- prod.Dockerfile
|
|
- .github/workflows/dockerize_production.yml
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
# Tag Image with tag name on release, else with 'pre' if push to master else with 'dev' if push to PR branch
|
|
DOCKER_IMAGE_TAG: ${{ github.ref_type == 'tag' && github.ref_name || github.event_name == 'pull_request' && 'dev' || 'pre' }}
|
|
|
|
jobs:
|
|
build:
|
|
name: Build Production Docker Image, Push to Container Registry
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.PAT }}
|
|
|
|
- name: Get App Version
|
|
id: hatch
|
|
run: echo "::set-output name=version::$(pipx run hatch version)"
|
|
|
|
- name: 📦 Build and Push Docker Image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
file: prod.Dockerfile
|
|
platforms: linux/amd64
|
|
push: true
|
|
tags: |
|
|
ghcr.io/${{ github.repository }}-cloud:${{ env.DOCKER_IMAGE_TAG }}
|
|
${{ github.ref_type == 'tag' && 'ghcr.io/${{ github.repository }}-cloud:latest' || '' }}
|
|
build-args: |
|
|
VERSION=${{ steps.hatch.outputs.version }}
|
|
PORT=42110
|