GitHub Actions Bot
feat: Deploy latest version of Gradio app
41d029b
# This workflow trains a model AND deploys the full Gradio app with that model.
name: Train and Deploy Gradio App to Spaces
on:
push:
branches:
- main
workflow_dispatch:
jobs:
train-and-deploy:
runs-on: ubuntu-latest
steps:
# Step 1: Checks out your GitHub repository code
- name: Checkout Repository
uses: actions/checkout@v4
with:
# Fetch all history for all branches and tags
fetch-depth: 0
# Step 2: Set up the Python environment
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: '3.9'
# Step 3: Install all dependencies from your requirements.txt file
- name: Install Dependencies
run: pip install -r requirements.txt
# Step 4: Prepare the data for training
- name: Prepare Data
run: python prepare_data.py
# Step 5: Train the model to create the model.joblib file
- name: Train Baseline Linear Model
run: python train.py
# Step 6: Push the entire project to your Hugging Face Space
- name: Push to HF Space
env:
# Your HF token, stored as a GitHub secret
HF_TOKEN: ${{ secrets.HUGGING_FACE_TOKEN }}
run: |
# Clones your Hugging Face Space repository into a new folder named 'space'
git clone https://ashandilgith:$HF_TOKEN@huggingface.co/spaces/ashandilgith/predictive_maintenance space
# Use rsync to copy all files from the current directory to the 'space' directory,
# excluding the 'space' directory itself to prevent the error.
rsync -av --delete --exclude='/space' --exclude='.git' ./ ./space/
# Go into the 'space' folder to perform git operations
cd ./space
# Configure git user for the commit
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions Bot"
# Add all the new and updated files to be committed
git add .
# Commit the changes with a descriptive message
# The '--allow-empty' flag prevents errors if there are no changes to commit.
git commit -m "feat: Deploy latest version of Gradio app" --allow-empty
# Push the changes to the Hugging Face Space repository
git push