Merge pull request #28 from nglcobdai/dev #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Workflow for deploying Sphinx documentation built within a Docker container to GitHub Pages | |
name: Deploy Sphinx Document to Pages | |
on: | |
# Runs on pushes targeting the default branch | |
push: | |
branches: ["main"] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# Set permissions for the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
# Allow only one concurrent deployment, skipping queued runs, but do not cancel in-progress ones | |
concurrency: | |
group: "pages" | |
cancel-in-progress: false | |
jobs: | |
# Single deploy job since we're just deploying | |
deploy: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the repository | |
- uses: actions/checkout@v3 | |
# Step 2: Install Docker Compose | |
- name: Install Docker Compose | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y docker-compose | |
# Step 3: Create an .env file if required | |
- name: Make .env file | |
run: | | |
if [ -f .env.example ]; then | |
cp .env.example .env | |
fi | |
# Step 4: Build and Start the containers | |
- name: Build and Start Docker Containers | |
run: | | |
docker-compose -f docker-compose.yml --env-file .env up --build -d | |
# Step 5: Run commands inside the Docker container to build Sphinx documentation | |
- name: Build Sphinx Documentation inside Container | |
run: | | |
docker-compose -f docker-compose.yml --env-file .env exec -T dev bash -c " | |
cd docs && \ | |
poetry run make dirhtml" | |
# Step 6: Set up Pages configuration for deployment | |
- name: Setup Pages | |
uses: actions/configure-pages@v3 | |
# Step 7: Upload the generated HTML files as artifacts for deployment | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v2 | |
with: | |
path: "./docs/build" | |
# Step 8: Deploy to GitHub Pages | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v2 |