mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-09 13:25:11 +00:00
Improve Dockerize, Publish to PyPi Workflows
- fb86dea Create tagged Docker image on new tag/release - 01fd98b Improve workflow to publish khoj to pypi
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
name: build
|
name: dockerize
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
tags:
|
||||||
|
- "*"
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
paths:
|
paths:
|
||||||
@@ -10,7 +12,7 @@ on:
|
|||||||
- setup.py
|
- setup.py
|
||||||
- Dockerfile
|
- Dockerfile
|
||||||
- docker-compose.yml
|
- docker-compose.yml
|
||||||
- .github/workflows/build.yml
|
- .github/workflows/dockerize.yml
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name: publish
|
name: pypi
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -9,21 +9,23 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- src/khoj/**
|
- src/khoj/**
|
||||||
- setup.py
|
- setup.py
|
||||||
- .github/workflows/publish.yml
|
- .github/workflows/pypi.yml
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- 'master'
|
- 'master'
|
||||||
paths:
|
paths:
|
||||||
- src/khoj/**
|
- src/khoj/**
|
||||||
- setup.py
|
- setup.py
|
||||||
- .github/workflows/publish.yml
|
- .github/workflows/pypi.yml
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
name: Publish App to PyPI
|
name: Publish Python Package to PyPI
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Set up Python 3.10
|
- name: Set up Python 3.10
|
||||||
uses: actions/setup-python@v4
|
uses: actions/setup-python@v4
|
||||||
@@ -39,61 +41,22 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
pip install --upgrade .
|
pip install --upgrade .
|
||||||
|
|
||||||
- name: Publish Release to PyPI
|
- name: 📝 Set Pre-Release Version for Master
|
||||||
if: startsWith(github.ref, 'refs/tags')
|
|
||||||
env:
|
|
||||||
TWINE_USERNAME: __token__
|
|
||||||
TWINE_PASSWORD: ${{ secrets.PYPI_API_KEY }}
|
|
||||||
run: |
|
|
||||||
# Setup Environment for Reproducible Builds
|
|
||||||
export PYTHONHASHSEED=42
|
|
||||||
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)
|
|
||||||
|
|
||||||
# Build PyPi Package
|
|
||||||
rm -rf dist
|
|
||||||
python -m build
|
|
||||||
|
|
||||||
# Validate PyPi Package
|
|
||||||
check-wheel-contents dist/*.whl
|
|
||||||
twine check dist/*
|
|
||||||
|
|
||||||
# Upload PyPi Package
|
|
||||||
twine upload --verbose dist/*
|
|
||||||
|
|
||||||
- name: Publish Master to PyPI
|
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
env:
|
|
||||||
TWINE_USERNAME: __token__
|
|
||||||
TWINE_PASSWORD: ${{ secrets.PYPI_API_KEY }}
|
|
||||||
run: |
|
run: |
|
||||||
# Set Pre-Release Version
|
# Set Pre-Release Version
|
||||||
sed -E -i "s/version=(.*)',/version=\1a$(date +%s)',/g" setup.py
|
sed -E -i "s/version=(.*)',/version=\1a$(date +%s)',/g" setup.py
|
||||||
|
|
||||||
# Setup Environment for Reproducible Builds
|
- name: 📝 Set Development Version for PR
|
||||||
export PYTHONHASHSEED=42
|
if: github.event_name == 'pull_request'
|
||||||
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)
|
|
||||||
|
|
||||||
# Build PyPi Package
|
|
||||||
rm -rf dist
|
|
||||||
python -m build
|
|
||||||
|
|
||||||
# Validate PyPi Package
|
|
||||||
check-wheel-contents dist/*.whl
|
|
||||||
twine check dist/*
|
|
||||||
|
|
||||||
# Upload PyPi Package
|
|
||||||
twine upload --verbose dist/*
|
|
||||||
|
|
||||||
- name: Publish Repo PR to Test PyPI
|
|
||||||
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
|
|
||||||
env:
|
env:
|
||||||
TWINE_USERNAME: __token__
|
|
||||||
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_API_KEY }}
|
|
||||||
PULL_REQUEST_NUMBER: ${{ github.event.number }}
|
PULL_REQUEST_NUMBER: ${{ github.event.number }}
|
||||||
run: |
|
run: |
|
||||||
# Set Development Release Version
|
# Set Development Release Version
|
||||||
sed -E -i "s/version=(.*)',/version=\1.dev$PULL_REQUEST_NUMBER$(date +%s)',/g" setup.py
|
sed -E -i "s/version=(.*)',/version=\1.dev$PULL_REQUEST_NUMBER$(date +%s)',/g" setup.py
|
||||||
|
|
||||||
|
- name: ⚙️ Build Python Package
|
||||||
|
run: |
|
||||||
# Setup Environment for Reproducible Builds
|
# Setup Environment for Reproducible Builds
|
||||||
export PYTHONHASHSEED=42
|
export PYTHONHASHSEED=42
|
||||||
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)
|
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)
|
||||||
@@ -102,9 +65,26 @@ jobs:
|
|||||||
rm -rf dist
|
rm -rf dist
|
||||||
python -m build
|
python -m build
|
||||||
|
|
||||||
|
- name: 👀 Validate Python Package
|
||||||
|
run: |
|
||||||
# Validate PyPi Package
|
# Validate PyPi Package
|
||||||
check-wheel-contents dist/*.whl
|
check-wheel-contents dist/*.whl
|
||||||
twine check dist/*
|
twine check dist/*
|
||||||
|
|
||||||
# Upload PyPi Package
|
- name: ⏫ Upload Python Package Artifacts
|
||||||
twine upload -r testpypi --verbose dist/*
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
path: dist/*
|
||||||
|
|
||||||
|
- name: 📦 Publish Python Package from Master or Release to PyPI
|
||||||
|
if: startsWith(github.ref, 'refs/tags') || github.ref == 'refs/heads/master'
|
||||||
|
uses: pypa/gh-action-pypi-publish@release/v1.6.4
|
||||||
|
with:
|
||||||
|
password: ${{ secrets.PYPI_API_KEY }}
|
||||||
|
|
||||||
|
- name: 📦 Publish Python Package from Repo PR to Test PyPI
|
||||||
|
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
|
||||||
|
uses: pypa/gh-action-pypi-publish@release/v1.6.4
|
||||||
|
with:
|
||||||
|
password: ${{ secrets.PYPI_API_KEY }}
|
||||||
|
repository_url: https://test.pypi.org/legacy/
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# Khoj 🦅
|
# Khoj 🦅
|
||||||
[](https://github.com/debanjum/khoj/actions/workflows/build.yml)
|
|
||||||
[](https://github.com/debanjum/khoj/actions/workflows/test.yml)
|
[](https://github.com/debanjum/khoj/actions/workflows/test.yml)
|
||||||
[](https://github.com/debanjum/khoj/actions/workflows/publish.yml)
|
[](https://github.com/debanjum/khoj/pkgs/container/khoj)
|
||||||
|
[](https://pypi.org/project/khoj-assistant/)
|
||||||
|
|
||||||
*A natural language search engine for your personal notes, transactions and images*
|
*A natural language search engine for your personal notes, transactions and images*
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||

|

|
||||||

|

|
||||||
|
|
||||||
# Khoj
|
# Khoj
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user