mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-23 23:48:56 +01:00
7fe3e844d2
- Note: Reproducible builds have not been validated. This is just preliminary work to get there. Further testing and fixes maybe required
95 lines
No EOL
2.5 KiB
YAML
95 lines
No EOL
2.5 KiB
YAML
name: publish
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
branches:
|
|
- 'master'
|
|
paths:
|
|
- src/**
|
|
- setup.py
|
|
- .github/workflows/publish.yml
|
|
pull_request:
|
|
branches:
|
|
- 'master'
|
|
paths:
|
|
- src/**
|
|
- setup.py
|
|
- .github/workflows/publish.yml
|
|
|
|
jobs:
|
|
publish:
|
|
name: Publish App to PyPI
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Set up Python 3.10
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Install Dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install build twine
|
|
|
|
- name: Install Application
|
|
run: |
|
|
pip install --upgrade .
|
|
|
|
- name: Publish Release to PyPI
|
|
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 and Upload PyPi Package
|
|
rm -rf dist
|
|
python -m build
|
|
twine check dist/*
|
|
twine upload dist/*
|
|
|
|
- name: Publish Master to PyPI
|
|
if: github.ref == 'refs/heads/master'
|
|
env:
|
|
TWINE_USERNAME: __token__
|
|
TWINE_PASSWORD: ${{ secrets.PYPI_API_KEY }}
|
|
run: |
|
|
# Set Pre-Release Version
|
|
sed -E -i "s/version=(.*)',/version=\1a$(date +%s)',/g" setup.py
|
|
|
|
# Setup Environment for Reproducible Builds
|
|
export PYTHONHASHSEED=42
|
|
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)
|
|
|
|
# Build and Upload PyPi Package
|
|
rm -rf dist
|
|
python -m build
|
|
twine check dist/*
|
|
twine upload dist/*
|
|
|
|
- name: Publish PR to Test PyPI
|
|
if: github.event_name == 'pull_request'
|
|
env:
|
|
TWINE_USERNAME: __token__
|
|
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_API_KEY }}
|
|
PULL_REQUEST_NUMBER: ${{ github.event.number }}
|
|
run: |
|
|
# Set Development Release Version
|
|
sed -E -i "s/version=(.*)',/version=\1.dev$PULL_REQUEST_NUMBER$(date +%s)',/g" setup.py
|
|
|
|
# Setup Environment for Reproducible Builds
|
|
export PYTHONHASHSEED=42
|
|
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)
|
|
|
|
# Build and Upload PyPi Package
|
|
rm -rf dist
|
|
python -m build
|
|
twine check dist/*
|
|
twine upload -r testpypi dist/* |