Skip to content

Add downloadable slide deck to Workflows module (#480) #239

Add downloadable slide deck to Workflows module (#480)

Add downloadable slide deck to Workflows module (#480) #239

# =============================================================================
# MICROSOFT COPILOT STUDIO LABS - BUILD AND DEPLOY WORKFLOW
# =============================================================================
# Builds Jekyll site (Minimal Mistakes theme) and deploys to GitHub Pages
# =============================================================================
name: Build and Deploy
concurrency:
group: github-pages-deployment
cancel-in-progress: true
on:
push:
branches: [main]
paths:
- "_labs/**"
- "_events/**"
- "_workshops/**"
- "_modules/**"
- "_layouts/**"
- "_includes/**"
- "_data/**"
- "assets/**"
- "_config.yml"
- "_config.feed.yml"
- "index.md"
- "about/**"
- "events/**"
- "labs/**"
- "scripts/**"
- "package.json"
- ".github/workflows/build-and-deploy.yml"
- "Gemfile"
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
jobs:
build-and-deploy:
name: Build and Deploy
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
bundler-cache: true
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: "20"
- name: Install feed deps
run: npm install --no-audit --no-fund
- name: Produce feed (own)
run: node scripts/build-feed.js --out .feed-build/published
- name: Consume feed and materialize
run: node scripts/consume-feed.js --out .feed-build --feed-dir .feed-build/published
- name: Build Jekyll from materialized feed
run: bundle exec jekyll build --config _config.yml,_config.feed.yml
env:
JEKYLL_ENV: production
- name: Publish feed alongside the site
run: |
mkdir -p _site/feed
cp -r .feed-build/published/. _site/feed/
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v5
with:
path: ./_site
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v5