Files
cyclop/.github/workflows/reindex_on_merge.yml
T

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.