73 lines
2.5 KiB
YAML
73 lines
2.5 KiB
YAML
# .github/workflows/reindex_on_merge.yml
|
|
|
|
name: Re-index Repository on Merge (Self-Hosted)
|
|
|
|
on:
|
|
pull_request:
|
|
types: [closed]
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
reindex:
|
|
# This condition ensures the job only runs if the pull request was actually merged.
|
|
if: github.event.pull_request.merged == true || github.event_name == 'workflow_dispatch'
|
|
|
|
# This tells GitHub to run this job on one of your self-hosted runners.
|
|
runs-on: Windows
|
|
|
|
# Set a default shell for all run steps in the job.
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
steps:
|
|
# Step 1: Check out the repository's code
|
|
# This downloads the latest version of your 'main' branch into the runner's working directory.
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
# Step 2: Set up a specific Python version
|
|
# This ensures a consistent Python version is used for the venv.
|
|
- name: Set up Python 3.11
|
|
id: setup-python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
# Step 3: Create and activate a virtual environment
|
|
# This creates a '.venv' directory in your project folder if it doesn't exist,
|
|
# and then activates it for subsequent steps.
|
|
- name: Create and activate virtual environment
|
|
run: |
|
|
if [ ! -d ".venv" ]; then
|
|
python -m venv .venv
|
|
fi
|
|
source .venv/bin/activate
|
|
|
|
# Step 4: Install or update dependencies
|
|
# This uses the pip from the virtual environment to install all required libraries.
|
|
- name: Install dependencies
|
|
run: |
|
|
source .venv/bin/activate
|
|
pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
|
|
# Step 5: Run the indexing script within the virtual environment
|
|
# It executes your 'create_index.py' script using the Python from the venv.
|
|
# The GITHUB_TOKEN is still passed securely to the script.
|
|
- name: Run indexing script
|
|
run: |
|
|
source .venv/bin/activate
|
|
python create_index.py
|
|
env:
|
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# Optional: Specify the working directory if your bot lives in a subfolder
|
|
# working-directory: ./path/to/your/bot
|
|
|
|
# The "Upload database artifact" step is no longer needed, as the database
|
|
# is now being written directly to a persistent location on your server.
|
|
|